Changeset 3426 in Sophya for trunk/SophyaLib/BaseTools


Ignore:
Timestamp:
Dec 8, 2007, 11:28:14 PM (18 years ago)
Author:
ansari
Message:

Correction bug (delete objet deja supprime ds ~PInPersist - lie a bug ds ReadReference() - Reza 08/12/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/ppersist.cc

    r2805 r3426  
    523523    return object;
    524524  }
    525   else if (ppstype == PPS_REFERENCE)
    526     return ReadReference();
    527 
     525  else if (ppstype == PPS_REFERENCE) {
     526    PPersist* ppr = ReadReference();
     527    PPersist* pprc = ppr->CloneSharedReference();
     528    if (po) {  // We have to read it into an object
     529      pprc->SetDataObj(*po);
     530      pprc->ShareDataReference(*ppr);  // On met a jour la reference de pprc
     531    }
     532    return pprc;
     533  }
    528534  else throw FileFormatExc("PInPersist::ReadObject invalide Tag Type !"); 
    529535}
     
    578584    if (seqread) throw FileFormatExc("PInPersist::KeepOId() already present PPS_ObjectId ");
    579585    PPersist *pp = (*objList.find(oid)).second;
    580     ppo.ShareDataReference(*pp);
     586    ppo.ShareDataReference(*pp);  // On met a jour la reference des donnees de ppo
    581587  }
    582588  else {
     
    649655  ClassCreatorFunc f = FindCreatorFunc(getDataObjClassId(o));
    650656  if (!f)
    651       throw NotFoundExc("PInPersist::PutObject()   class not registered");
     657      throw NotFoundExc("POutPersist::PutObject()   class not registered");
    652658  PPersist* ppo = f();
    653659  ppo->SetDataObj(o);
Note: See TracChangeset for help on using the changeset viewer.