Archived issue #0025280
Data Exchange - Interface_BitMap::Init crashes
Description
Interface_BitMap bm(0); bm.Init(Standard_False);//crashes due to theflags.IsNull() being true
this code is called by:
Interface_CopyTool::Interface_CopyTool (const Handle(Interface_InterfaceModel)& amodel, const Interface_GeneralLib& lib)
when amodel is empty
called by:
StepData_StepModel::GetFromAnother
(const Handle_Interface_InterfaceModel & other
)
called by:
Interface_CopyTool::FillModel(const Handle_Interface_InterfaceModel & bmodel)
called by
IFSelect_ModelCopier::SendSelected
(const char * const filename
, const Interface_Graph & G
, const Handle_IFSelect_WorkLibrary & WL
, const Handle_Interface_Protocol & protocol
, const Interface_EntityIterator & list)
called by
IFSelect_WorkSession::SendSelected
(const char * const filename
, const Handle_IFSelect_Selection & sel
, const unsigned int computegraph)
Steps to reproduce
Just Call IFSelect_WorkSession::SendSelected with valid model and selection, e.g
IFSelect_ReturnStatus stat = reader.ReadFile(attached_step_file_or_another_one_with_solids);
Handle_XSControl_WorkSession RWS = reader.WS();
Handle_IFSelect_SelectPointed sp = new IFSelect_SelectPointed;
Handle_Interface_InterfaceModel Model = RWS->Model();
Handle_Standard_Type tGRI = STANDARD_TYPE(StepShape_SolidModel);
Standard_Integer nb = Model->NbEntities();
for (Standard_Integer i = 1; i <= nb; i ++) {
Handle_Standard_Transient enti = Model->Value(i);
if ( ! enti->IsKind ( tGRI) ) continue;
Handle_StepGeom_GeometricRepresentationItem gri =
Handle_StepGeom_GeometricRepresentationItem::DownCast(enti);
sp->SetEntity(gri);
break;
}
STEPControl_Writer writer(RWS, Standard_False);
writer.WS()->WriteFile(valid_outfile, sp);
Public activity
2 archived notes
Participants are labeled by their role within this record.
Should be fixed with #0030378
Fixed on current master (tested using the code above)
Related records