A check on NULL is added into TDF_Tool::OutReferences() static methods.
Test cases for issue CR25153
// const Handle(TDF_Attribute)& att = attMItr.Key();
Handle(TDF_Attribute) att = attMItr.Key();
// ENDCLE
// const Handle(TDF_Attribute)& att = attMItr.Key();
Handle(TDF_Attribute) att = attMItr.Key();
// ENDCLE
- if (aFilterForReferences.IsKept(att) && !att->Label().IsDescendant(aRefLabel)) {
- atts.Add(itr.Value());
- outRefFound = Standard_True;
- break;
+ if (aFilterForReferences.IsKept(att) &&
+ !att->Label().IsNull() &&
+ !att->Label().IsDescendant(aRefLabel))
+ {
+ atts.Add(itr.Value());
+ outRefFound = Standard_True;
+ break;
const TDF_AttributeMap& attMap = ds->Attributes();
for (TDF_MapIteratorOfAttributeMap attMItr(attMap);attMItr.More();attMItr.Next()) {
Handle(TDF_Attribute) att = attMItr.Key();
const TDF_AttributeMap& attMap = ds->Attributes();
for (TDF_MapIteratorOfAttributeMap attMItr(attMap);attMItr.More();attMItr.Next()) {
Handle(TDF_Attribute) att = attMItr.Key();
- if (aFilterForReferences.IsKept(att) && !att->Label().IsDescendant(aRefLabel)) {
- atts.Add(att);
+ if (aFilterForReferences.IsKept(att) &&
+ !att->Label().IsNull() &&
+ !att->Label().IsDescendant(aRefLabel))
+ {
+ atts.Add(att);
}
}
const TDF_LabelMap& labMap = ds->Labels();
}
}
const TDF_LabelMap& labMap = ds->Labels();
--- /dev/null
+puts "=========="
+puts "OCC25123"
+puts "=========="
+puts ""
+###################################################
+# Retrieval of arguments of selection crashes the application
+###################################################
+
+plane p 0 0 0 0 0 1
+mkface f p -100 100 -100 100
+
+NewDocument D XmlOcaf
+ImportShape D 0:1 f
+SelectShape D 0:2 f
+ForgetAll D 0:1
+ArgsSelection D 0:2