0023306: Failures reading some attributes of BinOcaf document
authorszy <szy@pencascade.com>
Mon, 20 Aug 2012 08:56:47 +0000 (12:56 +0400)
committerszy <szy@pencascade.com>
Mon, 20 Aug 2012 08:56:47 +0000 (12:56 +0400)
Saving OCAF attribute TColStd_Array1OfExtendedString to binary file is corrected (missing data field written).

src/BinMDataStd/BinMDataStd_ExtStringArrayDriver.cxx

index ee70d9c..7befd9d 100755 (executable)
@@ -79,17 +79,21 @@ Standard_Boolean BinMDataStd_ExtStringArrayDriver::Paste
   }
 
   if(ok) {
-#ifdef DEB
-  //cout << "CurDocVersion = " << BinMDataStd::DocumentVersion() <<endl;
-#endif
+//#ifdef DEB
+//  cout << "CurDocVersion = " << BinMDataStd::DocumentVersion() <<endl;
+//#endif
     Standard_Boolean aDelta(Standard_False);
     if(BinMDataStd::DocumentVersion() > 2) {
       Standard_Byte aDeltaValue;
-      if (! (theSource >> aDeltaValue))
-       return Standard_False;
+         if (! (theSource >> aDeltaValue)) {
+//#ifdef DEB
+//      cout <<"DeltaValue = " << (Standard_Integer)aDeltaValue <<endl;
+//#endif
+           return Standard_False;
+         }
       else
        aDelta = (Standard_Boolean)aDeltaValue;
-    }
+       }
     anAtt->SetDelta(aDelta);
   }
   return ok;
@@ -113,4 +117,6 @@ void BinMDataStd_ExtStringArrayDriver::Paste
   theTarget << aFirstInd << aLastInd;
   for (Standard_Integer i = aFirstInd; i <= aLastInd; i ++)
     theTarget << anAtt->Value( i );
+
+  theTarget << (Standard_Byte)anAtt->GetDelta();
 }