1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-16 10:54:53 +03:00

0025153: Retrieval of arguments of selection crashes the application

A check on NULL is added into TDF_Tool::OutReferences() static methods.

Test cases for issue CR25153
This commit is contained in:
vro 2014-08-21 12:33:57 +04:00 committed by bugmaster
parent 73920cd481
commit d91b3986ed
2 changed files with 28 additions and 6 deletions

View File

@ -248,10 +248,13 @@ static void TDF_Tool_OutReferers(const TDF_Label& aRefLabel,
// const Handle(TDF_Attribute)& att = attMItr.Key(); // const Handle(TDF_Attribute)& att = attMItr.Key();
Handle(TDF_Attribute) att = attMItr.Key(); Handle(TDF_Attribute) att = attMItr.Key();
// ENDCLE // ENDCLE
if (aFilterForReferences.IsKept(att) && !att->Label().IsDescendant(aRefLabel)) { if (aFilterForReferences.IsKept(att) &&
atts.Add(itr.Value()); !att->Label().IsNull() &&
outRefFound = Standard_True; !att->Label().IsDescendant(aRefLabel))
break; {
atts.Add(itr.Value());
outRefFound = Standard_True;
break;
} }
} }
@ -318,8 +321,11 @@ static void TDF_Tool_OutReferences(const TDF_Label& aRefLabel,
const TDF_AttributeMap& attMap = ds->Attributes(); const TDF_AttributeMap& attMap = ds->Attributes();
for (TDF_MapIteratorOfAttributeMap attMItr(attMap);attMItr.More();attMItr.Next()) { for (TDF_MapIteratorOfAttributeMap attMItr(attMap);attMItr.More();attMItr.Next()) {
Handle(TDF_Attribute) att = attMItr.Key(); Handle(TDF_Attribute) att = attMItr.Key();
if (aFilterForReferences.IsKept(att) && !att->Label().IsDescendant(aRefLabel)) { if (aFilterForReferences.IsKept(att) &&
atts.Add(att); !att->Label().IsNull() &&
!att->Label().IsDescendant(aRefLabel))
{
atts.Add(att);
} }
} }
const TDF_LabelMap& labMap = ds->Labels(); const TDF_LabelMap& labMap = ds->Labels();

16
tests/bugs/caf/bug25153 Normal file
View File

@ -0,0 +1,16 @@
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