Index: /issm/trunk/src/c/objects/DofIndexing.cpp
===================================================================
--- /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 5776)
+++ /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 5777)
@@ -50,5 +50,5 @@
 	this->clone=in->clone;
 
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		this->f_set=(bool*)xmalloc(this->gsize*sizeof(bool));
 		this->s_set=(bool*)xmalloc(this->gsize*sizeof(bool));
@@ -64,8 +64,8 @@
 		this->gdoflist=NULL;
 	}
-	if(this->fsize)this->fdoflist=(int*)xmalloc(this->fsize*sizeof(int)); else this->fdoflist=NULL;
-	if(this->ssize)this->sdoflist=(int*)xmalloc(this->ssize*sizeof(int)); else this->sdoflist=NULL;
-
-	if(this->gsize){
+	if(this->fsize>0 && this->fsize!=UNDEF)this->fdoflist=(int*)xmalloc(this->fsize*sizeof(int)); else this->fdoflist=NULL;
+	if(this->ssize>0 && this->ssize!=UNDEF)this->sdoflist=(int*)xmalloc(this->ssize*sizeof(int)); else this->sdoflist=NULL;
+
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		memcpy(this->f_set,in->f_set,this->gsize*sizeof(bool));
 		memcpy(this->s_set,in->s_set,this->gsize*sizeof(bool));
@@ -74,6 +74,6 @@
 		memcpy(this->gdoflist,in->gdoflist,this->gsize*sizeof(int));
 	}
-	if(this->fsize)memcpy(this->fdoflist,in->fdoflist,this->fsize*sizeof(int));
-	if(this->ssize)memcpy(this->sdoflist,in->sdoflist,this->ssize*sizeof(int));
+	if(this->fsize>0 && this->fsize!=UNDEF)memcpy(this->fdoflist,in->fdoflist,this->fsize*sizeof(int));
+	if(this->ssize>0 && this->ssize!=UNDEF)memcpy(this->sdoflist,in->sdoflist,this->ssize*sizeof(int));
 
 }
@@ -101,5 +101,5 @@
 
 	/*allocate: */
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		this->f_set=(bool*)xmalloc(this->gsize*sizeof(bool));
 		this->s_set=(bool*)xmalloc(this->gsize*sizeof(bool));
@@ -228,5 +228,5 @@
 	
 	/*Allocate: */
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		this->f_set=(bool*)xmalloc(this->gsize*sizeof(bool));
 		this->s_set=(bool*)xmalloc(this->gsize*sizeof(bool));
@@ -243,11 +243,15 @@
 		this->gdoflist=NULL;
 	}
-	if(this->fsize)this->fdoflist=(int*)xmalloc(this->fsize*sizeof(int));
-	else           this->fdoflist=NULL;
-	if(this->ssize)this->sdoflist=(int*)xmalloc(this->ssize*sizeof(int));
-	else           this->sdoflist=NULL;
+	if(this->fsize>0 && this->fsize!=UNDEF)
+	 this->fdoflist=(int*)xmalloc(this->fsize*sizeof(int));
+	else
+	 this->fdoflist=NULL;
+	if(this->ssize>0 && this->ssize!=UNDEF)
+	 this->sdoflist=(int*)xmalloc(this->ssize*sizeof(int));
+	else
+	 this->sdoflist=NULL;
 
 	/*Copy arrays: */
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		memcpy(f_set,marshalled_dataset,gsize*sizeof(bool));marshalled_dataset+=gsize*sizeof(bool);
 		memcpy(s_set,marshalled_dataset,gsize*sizeof(bool));marshalled_dataset+=gsize*sizeof(bool);
@@ -257,6 +261,6 @@
 	}
 	
-	if(this->fsize){ memcpy(this->fdoflist,marshalled_dataset,this->fsize*sizeof(int));marshalled_dataset+=this->fsize*sizeof(int); }
-	if(this->ssize){ memcpy(this->sdoflist,marshalled_dataset,this->ssize*sizeof(int));marshalled_dataset+=this->ssize*sizeof(int); }
+	if(this->fsize>0 && this->fsize!=UNDEF){ memcpy(this->fdoflist,marshalled_dataset,this->fsize*sizeof(int));marshalled_dataset+=this->fsize*sizeof(int); }
+	if(this->ssize>0 && this->ssize!=UNDEF){ memcpy(this->sdoflist,marshalled_dataset,this->ssize*sizeof(int));marshalled_dataset+=this->ssize*sizeof(int); }
 
 	/*return: */
@@ -292,6 +296,5 @@
 	memcpy(marshalled_dataset,&clone,sizeof(clone));marshalled_dataset+=sizeof(clone);
 	
-	
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		memcpy(marshalled_dataset,f_set,gsize*sizeof(bool));marshalled_dataset+=gsize*sizeof(bool);
 		memcpy(marshalled_dataset,s_set,gsize*sizeof(bool));marshalled_dataset+=gsize*sizeof(bool);
@@ -300,6 +303,6 @@
 		memcpy(marshalled_dataset,gdoflist,gsize*sizeof(int)); marshalled_dataset+=gsize*sizeof(int);
 	}
-	if(this->fsize){ memcpy(marshalled_dataset,fdoflist,fsize*sizeof(int)); marshalled_dataset+=fsize*sizeof(int);}
-	if(this->ssize){ memcpy(marshalled_dataset,sdoflist,ssize*sizeof(int)); marshalled_dataset+=ssize*sizeof(int);}
+	if(this->fsize>0 && this->fsize!=UNDEF){ memcpy(marshalled_dataset,fdoflist,fsize*sizeof(int)); marshalled_dataset+=fsize*sizeof(int);}
+	if(this->ssize>0 && this->ssize!=UNDEF){ memcpy(marshalled_dataset,sdoflist,ssize*sizeof(int)); marshalled_dataset+=ssize*sizeof(int);}
 
 	*pmarshalled_dataset=marshalled_dataset;
@@ -313,5 +316,5 @@
 
 	size+=4*sizeof(int)+sizeof(bool);
-	if(this->gsize){
+	if(this->gsize>0 && this->gsize!=UNDEF){
 		size+= 2*this->gsize*sizeof(bool)+
 			   this->gsize*sizeof(double)+
@@ -319,6 +322,6 @@
 		if(this->doftype)size+=this->gsize*sizeof(int);
 	}
-	if(this->fsize)size+=this->fsize*sizeof(int);
-	if(this->ssize)size+=this->ssize*sizeof(int);
+	if(this->fsize>0 && this->fsize!=UNDEF)size+=this->fsize*sizeof(int);
+	if(this->ssize>0 && this->ssize!=UNDEF)size+=this->ssize*sizeof(int);
 
 	size+=sizeof(int); //sizeof(int) for enum type
