DiscussionsIssue archiveOCCT:Data Exchange

Archived issue #0025280

Data Exchange - Interface_BitMap::Init crashes

CommunityOCCT:Data Exchangeclosed2 public notes

Search issues

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.

01Commenter 1
Should be fixed with #0030378
02Commenter 2
Fixed on current master (tested using the code above)

Related records