Changeset cd77422 in tol


Ignore:
Timestamp:
Sep 11, 2009, 2:52:34 PM (17 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
da6cdaa
Parents:
e5f84e4
Message:

All classes must be predeclared in OIS

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1363 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/OIS/oisloader.cpp

    re5f84e4 rcd77422  
    475475      if(control_.oisEngine_.oisVersion_>="02.10")
    476476      {
    477         ERead(isStatic        , stream);
     477        ERead(isStatic, stream);
    478478      }
    479479      mbr->isMethod_ = isMethod!=0;
    … …  
    796796    else if(mode==BCLASSMODE)
    797797    {
    798       BClass* cls = new BClass;
    799       cls->PutName(name);
    800       BScanner::AddSymbol(new BTypeToken(name,BTypeToken::BCLASS));
    801       BGrammar::AddObject(cls);
     798      BClass* cls = BClass::PredeclareClass(name);
    802799      Ensure(Read(*cls,object_));
    803800      return(readed_[found].PutObject(cls));
    … …  
    10181015            str = (BStruct*)r;
    10191016          }
     1017          if(control_.oisEngine_.oisVersion_>="02.11")
     1018          {
     1019            int classForwardDeclarations = 0;
     1020            ERead(classForwardDeclarations, set_);
     1021            for(n=1; n<=classForwardDeclarations; n++)
     1022            {
     1023              BText className;
     1024              ERead(className, set_);
     1025              BClass::PredeclareClass(className);
     1026            }
     1027          }
    10201028          BSyntaxObject* r=NULL;
    10211029          for(n=1; n<=s; n++)
    … …  
    10651073
    10661074          BUserNameBlock* oldBuilding = BNameBlock::Building();
     1075        //const BNameBlock* oldCurrent = BNameBlock::Current();
    10671076          BGrammar::IncLevel();
    10681077          int stackPos = BGrammar::StackSize();
    10691078          BUserNameBlock* unb = new BGraContensP<BNameBlock>(name, new BNameBlock);
    10701079          BNameBlock::SetBuilding(unb);
     1080        //BNameBlock::SetCurrent(&unb->Contens());
    10711081          unb->PutDescription(description);
    10721082          assert(GraNameBlock()->FindLocal(name)==unb);
    … …  
    10951105          x.Set().PutStruct (str);
    10961106/* */
     1107          if(control_.oisEngine_.oisVersion_>="02.11")
     1108          {
     1109            int classForwardDeclarations = 0;
     1110            ERead(classForwardDeclarations, set_);
     1111            for(n=1; n<=classForwardDeclarations; n++)
     1112            {
     1113              BText className;
     1114              ERead(className, set_);
     1115              BClass::PredeclareClass(className);
     1116            }
     1117          }
    10971118          BSyntaxObject* mem=NULL;
    10981119          if(oldBuilding)
    … …  
    11311152          }
    11321153          BNameBlock::SetBuilding(oldBuilding);
     1154        //BNameBlock::SetCurrent(oldCurrent);
    11331155          BGrammar::DestroyStackUntil(stackPos, unb);   
    11341156          BGrammar::DecLevel();
Note: See TracChangeset for help on using the changeset viewer.