Changeset e57e582 in tol


Ignore:
Timestamp:
Sep 1, 2009, 8:42:27 AM (17 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
63537ac
Parents:
e8bbd63
Message:

Handling with static methods and members
Class names must be stored as FullName

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

Location:
tol/OIS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tol/OIS/oiscreator.cpp

    re8bbd63 re57e582  
    420420    {
    421421      char isMethod = mbr.isMethod_;
     422      char isStatic = mbr.isStatic_;
    422423      Ensure(WriteTree(mbr.branch_, stream));
    423424      EWrite(mbr.declaration_     , stream);
    424425      EWrite(mbr.definition_      , stream);
    425426      EWrite(isMethod             , stream);
     427      EWrite(isStatic             , stream);     
    426428    }
    427429  }
    … …  
    848850  if(hasClass)
    849851  {
    850     Ensure(Write(nb.Class()->Name(), object_));
     852    Ensure(Write(nb.Class()->FullName(), object_));
    851853  }
    852854  return(true);
  • tol/OIS/oisloader.cpp

    re8bbd63 re57e582  
    465465    {
    466466      char isMethod;
     467      char isStatic=0;
    467468      mbr = new BMember;
    468469      mbr->parent_ = &cls;
    … …  
    472473      ERead(mbr->definition_  , stream);
    473474      ERead(isMethod          , stream);
     475      if(control_.oisEngine_.oisVersion_>="02.10")
     476      {
     477        ERead(isStatic        , stream);
     478      }
    474479      mbr->isMethod_ = isMethod!=0;
     480      mbr->isStatic_ = isStatic!=0;
    475481      mbr->isGood_ = true;
    476482      mbr->BuildMethod();
     483      mbr->BuildStatic();
    477484    }
    478485    else
    … …  
    792799      cls->PutName(name);
    793800      BScanner::AddSymbol(new BTypeToken(name,BTypeToken::BCLASS));
     801      BGrammar::AddObject(cls);
    794802      Ensure(Read(*cls,object_));
    795       BGrammar::AddObject(cls);
    796803      return(readed_[found].PutObject(cls));
    797804    }
    … …  
    10661073          readed_[found].PutObject(unb);
    10671074          BNameBlock& x = unb->Contens();
     1075          x.Set().PutSubType(BSet::BSubType(sbt));
    10681076          x.Set().PutNameBlock(&x);
    1069           if(oldBuilding)
    1070           {
    1071             int oldLevel = oldBuilding->Level();
    1072             if(oldLevel == level-1)
    1073             {
    1074               oldBuilding->Contens().AddElement(unb, true);
    1075             }
    1076           }
    1077           x.Set().PutSubType(BSet::BSubType(sbt));
    10781077          x.PutName(fullName);
    10791078          if(control_.oisEngine_.oisVersion_>="02.07")
    … …  
    10951094          }
    10961095          x.Set().PutStruct (str);
     1096/* */
     1097          BSyntaxObject* mem=NULL;
     1098          if(oldBuilding)
     1099          {
     1100            int oldLevel = oldBuilding->Level();
     1101            if(oldLevel == level-1)
     1102            {
     1103              mem = oldBuilding->Contens().Member(unb->Name());
     1104              if(!mem)
     1105              {
     1106                oldBuilding->Contens().AddElement(unb, true);
     1107              }
     1108            }
     1109          }
     1110/* */
    10971111          BSyntaxObject* r=NULL;
    10981112          x.Set().PrepareStore(s);
    … …  
    11061120            {
    11071121              return(NullError("BOisLoader::ReadNextObject: NULL element of set "));
    1108             } 
    1109             if(r)
     1122            }
     1123            else
    11101124            {
    1111               x.AddElement(r, true);
     1125              mem = x.Member(r->Name());
     1126              if(!mem)
     1127              {
     1128                x.AddElement(r, true);
     1129              }
    11121130            }
    11131131          }
Note: See TracChangeset for help on using the changeset viewer.