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,7 +248,10 @@ static void TDF_Tool_OutReferers(const TDF_Label& aRefLabel,
// const Handle(TDF_Attribute)& att = attMItr.Key();
Handle(TDF_Attribute) att = attMItr.Key();
// ENDCLE
if (aFilterForReferences.IsKept(att) && !att->Label().IsDescendant(aRefLabel)) {
if (aFilterForReferences.IsKept(att) &&
!att->Label().IsNull() &&
!att->Label().IsDescendant(aRefLabel))
{
atts.Add(itr.Value());
outRefFound = Standard_True;
break;
@ -318,7 +321,10 @@ static void TDF_Tool_OutReferences(const TDF_Label& aRefLabel,
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)) {
if (aFilterForReferences.IsKept(att) &&
!att->Label().IsNull() &&
!att->Label().IsDescendant(aRefLabel))
{
atts.Add(att);
}
}

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