Changeset 6b793f6 in tol


Ignore:
Timestamp:
Nov 17, 2010, 5:15:20 PM (16 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
f59c9c6
Parents:
1b6682e
Message:

Fixes #887

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

Location:
tol/OIS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tol/OIS/oisloader.cpp

    r1b6682e r6b793f6  
    8585    return(NULL);
    8686  }
     87}
     88
     89//--------------------------------------------------------------------
     90  BSyntaxObject* BOisLoader::BOffsetObject::ReplaceObject(BSyntaxObject* obj)
     91//--------------------------------------------------------------------
     92{
     93//Std(BText("\nBOisLoader::BOffsetObject::PutObject ")+(int)offset_+",["+(int)obj+"] "+obj->Identify());
     94  object_ = obj;
     95  obj->PutOisOffset(offset_);
     96  return(obj);
    8797}
    8898
    … …  
    12931303            object_->SetPos(offset);
    12941304            //CALL ReadNextObject
    1295             BSyntaxObject* r = ReadNextObject(true);
    1296             if(!r || (r->Grammar()!=GraTimeSet()))
    1297             {
    1298               return(NullError("FATAL cannot built dating of serie"));
    1299             }
    1300             BUserTimeSet* dating = (BUserTimeSet*)GraTimeSet()->FindOperand(r->Name(), false);
    1301             if(!dating) { dating = (BUserTimeSet*)r; }
     1305            BUserTimeSet* dating = NULL;
     1306            {
     1307              BINT64 offset_tms = object_->Offset();
     1308              BSyntaxObject* r = ReadNextObject(false);
     1309              if(!r || (r->Grammar()!=GraTimeSet()))
     1310              {
     1311                return(NullError("FATAL cannot built dating of serie"));
     1312              }
     1313              dating = (BUserTimeSet*)GraTimeSet()->FindOperand(r->Name(), false);
     1314              if(!dating) { dating = (BUserTimeSet*)r; }
     1315              else if(dating!=r)       
     1316              {
     1317                static BOffsetObject ofob_tms;
     1318                ofob_tms.PutOffset(offset_tms);
     1319                int found_tms = readed_.FindSorted(ofob_tms, CompareOffset);
     1320                readed_[found_tms].ReplaceObject(dating);
     1321                DESTROY(r);
     1322              } 
     1323            }
    13021324            BDate first, last, beginCache, endCache;
    13031325            ERead(first, serie_);
  • tol/OIS/tol_oisloader.h

    r1b6682e r6b793f6  
    5555    void PutNullObject() { object_ = NULL; }
    5656    BSyntaxObject* PutObject(BSyntaxObject* obj);
     57    BSyntaxObject* ReplaceObject(BSyntaxObject* obj);
    5758    BINT64 Offset() { return(offset_); }
    5859    BSyntaxObject* Object() { return(object_); }
Note: See TracChangeset for help on using the changeset viewer.