Ignore:
Timestamp:
06/01/22 05:01:48 (3 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 27033

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/c/classes/Inputs/TransientInput.cpp

    r26744 r27035  
    125125void TransientInput::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
    126126
     127        bool isnull;
     128
    127129        int object_enum = TransientInputEnum;
    128130   marshallhandle->call(object_enum);
     
    149151        if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD){
    150152                for(int i=0;i<this->numtimesteps;i++){
    151                         _assert_(this->inputs[i]);
    152                         object_enum = this->inputs[i]->ObjectEnum();
    153                         marshallhandle->call(object_enum);
    154                         this->inputs[i]->Marshall(marshallhandle);
     153
     154                        //_assert_(this->inputs[i]);
     155                        isnull = false;
     156                        if(!this->inputs[i]) isnull = true;
     157                        marshallhandle->call(isnull);
     158
     159                        if(!isnull){
     160                                object_enum = this->inputs[i]->ObjectEnum();
     161                                marshallhandle->call(object_enum);
     162                                this->inputs[i]->Marshall(marshallhandle);
     163                        }
    155164                }
    156165        }
    157166        else{
    158167                for(int i=0;i<this->numtimesteps;i++){
    159                         marshallhandle->call(object_enum);
    160 
    161                         if(object_enum==TriaInputEnum){
    162                                 TriaInput* triainput2=new TriaInput();
    163                                 triainput2->Marshall(marshallhandle);
    164                                 this->inputs[i]=triainput2;
    165                         }
    166                         else if(object_enum==PentaInputEnum){
    167                                 PentaInput* pentainput2=new PentaInput();
    168                                 pentainput2->Marshall(marshallhandle);
    169                                 this->inputs[i]=pentainput2;
    170                         }
    171                         else{
    172                                 _error_("input "<<EnumToStringx(object_enum)<<" not supported");
     168                        marshallhandle->call(isnull);
     169                        if(!isnull){
     170                                marshallhandle->call(object_enum);
     171
     172                                if(object_enum==TriaInputEnum){
     173                                        TriaInput* triainput2=new TriaInput();
     174                                        triainput2->Marshall(marshallhandle);
     175                                        this->inputs[i]=triainput2;
     176                                }
     177                                else if(object_enum==PentaInputEnum){
     178                                        PentaInput* pentainput2=new PentaInput();
     179                                        pentainput2->Marshall(marshallhandle);
     180                                        this->inputs[i]=pentainput2;
     181                                }
     182                                else{
     183                                        _error_("input "<<EnumToStringx(object_enum)<<" not supported");
     184                                }
    173185                        }
    174186                }
Note: See TracChangeset for help on using the changeset viewer.