mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0027772: Foundation Classes - define Standard_Boolean using C++ type "bool" instead of "unsigned int"
Code has been updated to remove no-op casts and implicit casts to Standard_Boolean. Places of inproper use of Standard_Boolean instead of Standard_Integer have been corrected: - Bnd_Box, Bnd_Box2d Bit flags are now defined as private enum - HLRAlgo_BiPoint, HLRAlgo_EdgesBlock, HLRBRep_EdgeData, HLRBRep_FaceData Bit flags are now defined as enum - HLRAlgo_EdgeStatus, HLRBRep_BiPnt2D, HLRBRep_BiPoint Bit flags are now defined as bool fields - HLRAlgo_PolyData Bit flags are now defined as Standard_Integer - OSD_DirectoryIterator, OSD_FileIterator Boolean flag is now defined as Standard_Boolean - ShapeAnalysis_Surface::SurfaceNewton() now returns Standard_Integer (values 0, 1 or 3) - ChFi2d_FilletAlgo now uses TColStd_SequenceOfBoolean instead of TColStd_SequenceOfInteger for storing boolean flags Method IFSelect_Dispatch::PacketsCount() has been dropped from interface. ShapeFix_Solid::Status() has been fixed to decode requested status instead of returning integer value. TopOpeBRepBuild_Builder1 now defines map storing Standard_Boolean values instead of Standard_Integer. Persistence for Standard_Boolean type has been corrected to keep backward compatibility: - BinMDataStd, BinTools, FSD_BinaryFile Broken Draw Harness commands vdisplaymode and verasemode have been removed. BRepMesh_FastDiscretFace::initDataStructure() - workaround old gcc limitations BRepMesh_IncrementalMesh::clear() - avoid ambiguity
This commit is contained in:
@@ -286,11 +286,10 @@ Storage_BaseDriver& FSD_BinaryFile::PutBoolean(const Standard_Boolean aValue)
|
||||
{
|
||||
#if OCCT_BINARY_FILE_DO_INVERSE
|
||||
Standard_Integer t = InverseInt ((Standard_Integer) aValue);
|
||||
|
||||
if (!fwrite(&t,sizeof(Standard_Integer),1,myStream)) Storage_StreamWriteError::Raise();
|
||||
#else
|
||||
if (!fwrite(&aValue,sizeof(Standard_Boolean),1,myStream)) Storage_StreamWriteError::Raise();
|
||||
Standard_Integer t = aValue ? 1 : 0;
|
||||
#endif
|
||||
if (!fwrite(&t,sizeof(Standard_Integer),1,myStream)) Storage_StreamWriteError::Raise();
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -429,11 +428,13 @@ void FSD_BinaryFile::GetInteger (Standard_IStream& theIStream, Standard_Integer&
|
||||
|
||||
Storage_BaseDriver& FSD_BinaryFile::GetBoolean(Standard_Boolean& aValue)
|
||||
{
|
||||
if (!fread(&aValue,sizeof(Standard_Boolean),1,myStream))
|
||||
Standard_Integer anInt = 0;
|
||||
if (!fread(&anInt,sizeof(Standard_Integer),1,myStream))
|
||||
Storage_StreamTypeMismatchError::Raise();
|
||||
#if OCCT_BINARY_FILE_DO_INVERSE
|
||||
aValue = InverseInt ((Standard_Integer) aValue);
|
||||
anInt = InverseInt (anInt);
|
||||
#endif
|
||||
aValue = (anInt != 0);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user