0026061: TNaming_Selector crash in select method.
authorszy <szy@opencascade.com>
Thu, 23 Apr 2015 14:28:40 +0000 (17:28 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 23 Apr 2015 14:30:43 +0000 (17:30 +0300)
TNaming_Selector crash in select method.

TNaming_Localizer is protected from not expected input arguments.

Test case for issue CR26061

src/TNaming/TNaming_Localizer.cxx
tests/bugs/caf/bug26061 [new file with mode: 0644]

index 5072368..94017e5 100644 (file)
@@ -543,6 +543,7 @@ void TNaming_Localizer::FindNeighbourg (const TopoDS_Shape&      Sol,
                                        const TopoDS_Shape&      S,
                                        TopTools_MapOfShape&     Neighbourg)
 {  
+  if(Sol.IsNull() || S.IsNull()) return;
   TopAbs_ShapeEnum       TA = S.ShapeType();
   TopAbs_ShapeEnum       TS=TopAbs_COMPOUND;
 
diff --git a/tests/bugs/caf/bug26061 b/tests/bugs/caf/bug26061
new file mode 100644 (file)
index 0000000..5ec3b6b
--- /dev/null
@@ -0,0 +1,47 @@
+puts "============"
+puts "OCC26061"
+puts "============"
+puts ""
+#######################################################################
+# TNaming_Selector crash in select method.
+#######################################################################
+
+pload QAcommands
+
+NewDocument D MDTV-Standard
+
+## 1. Build Primitive face <f> 
+plane pl 0 0 0 0 0 1
+mkface f0 pl -10 10 -10 10
+set Lab900 [Label D 0:1:900]
+BuildNamedShape D $Lab900 P f0
+
+## 2. Mirror f0 
+tmirror f0 0 0 10 0 0 1
+renamevar f0 fmir
+GetShape D $Lab900 f0
+set Lab901 [Label D 0:1:901]
+BuildNamedShape D $Lab901 G f0 fmir
+
+## 3. Translate primitive face
+ttranslate f0 0 0 -5
+renamevar f0 ftr5
+set Lab902 [Label D 0:1:902]
+GetShape D $Lab900 f0
+BuildNamedShape D $Lab902 M f0 ftr5
+
+## 4. Translate mirrored face
+GetShape D $Lab901 fmir
+renamevar fmir fmirtr
+ttranslate  fmirtr 0 0 -5
+GetShape D $Lab901 fmir
+set Lab903 [Label D 0:1:903]
+BuildNamedShape D $Lab903 M fmir  fmirtr
+
+## 5. Select the face from step 4 (mirrored & translasted)
+set Lab904 [Label D 0:1:904]
+GetShape D $Lab903 fSel
+SelectShape D $Lab904 fSel
+## ==> No exception
+GetShape D $Lab904 fRes
+whatis fRes