Changeset 4210


Ignore:
Timestamp:
06/24/10 16:55:03 (15 years ago)
Author:
seroussi
Message:

demarshall hook for num=0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Hook.cpp

    r4204 r4210  
    196196       
    197197        /*allocate: */
    198         if (num<0) ISSMERROR("cannot demarshall Hook as num<=0");
    199         this->ids=(int*)xmalloc(num*sizeof(int));
    200         this->offsets=(int*)xmalloc(num*sizeof(int));
    201        
    202         /*demarshall allocated ids and offsets: */
    203         for (i=0;i<num;i++){
    204                 memcpy(&this->ids[i],marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
    205                 memcpy(&this->offsets[i],marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
    206         }
    207 
    208         /*nullify object pointers */
    209         this->objects=(Object**)xmalloc(num*sizeof(Object*));
    210         for (i=0;i<num;i++){
    211                 this->objects[i]=NULL;
     198        if (num<0){
     199                ISSMERROR("cannot demarshall Hook as num<=0");
     200        }
     201        else if (num==0){
     202                this->ids=NULL;
     203                this->offsets=NULL;
     204                this->objects=NULL;
     205        }
     206        else{
     207                this->ids=(int*)xmalloc(num*sizeof(int));
     208                this->offsets=(int*)xmalloc(num*sizeof(int));
     209
     210                /*demarshall allocated ids and offsets: */
     211                for (i=0;i<num;i++){
     212                        memcpy(&this->ids[i],marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
     213                        memcpy(&this->offsets[i],marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
     214                }
     215
     216                /*nullify object pointers */
     217                this->objects=(Object**)xmalloc(num*sizeof(Object*));
     218                for (i=0;i<num;i++){
     219                        this->objects[i]=NULL;
     220                }
    212221        }
    213222
Note: See TracChangeset for help on using the changeset viewer.