0030510: Application Framework - add missing NULL check within TDataStd_RealArray...
authorjfa <jfa@opencascade.com>
Thu, 21 Feb 2019 09:49:05 +0000 (12:49 +0300)
committerapn <apn@opencascade.com>
Thu, 21 Feb 2019 15:47:04 +0000 (18:47 +0300)
src/TDataStd/TDataStd_RealArray.cxx
tests/bugs/caf/bug30510 [new file with mode: 0644]

index 760e5ad..51c6038 100644 (file)
@@ -191,18 +191,20 @@ void TDataStd_RealArray::ChangeArray(const Handle(TColStd_HArray1OfReal)& newArr
   Standard_Boolean aDimEqual = Standard_False;
   Standard_Integer i;
 
-  if (Lower() == aLower && Upper() == anUpper ) {
-    aDimEqual = Standard_True;
-    Standard_Boolean isEqual = Standard_True;
-    if(isCheckItems) {
-      for(i = aLower; i <= anUpper; i++) {
-        if(myValue->Value(i) != newArray->Value(i)) {
-          isEqual = Standard_False;
-          break;
+  if (!myValue.IsNull()) {
+    if (Lower() == aLower && Upper() == anUpper ) {
+      aDimEqual = Standard_True;
+      Standard_Boolean isEqual = Standard_True;
+      if(isCheckItems) {
+        for(i = aLower; i <= anUpper; i++) {
+          if(myValue->Value(i) != newArray->Value(i)) {
+            isEqual = Standard_False;
+            break;
+          }
         }
+        if(isEqual)
+          return;
       }
-      if(isEqual)
-        return;
     }
   }
 
diff --git a/tests/bugs/caf/bug30510 b/tests/bugs/caf/bug30510
new file mode 100644 (file)
index 0000000..babe929
--- /dev/null
@@ -0,0 +1,11 @@
+puts "============"
+puts "0030510: Application Framework - add missing NULL check within TDataStd_RealArray::ChangeArray()"
+puts "============"
+
+Open [locate_data_file bug30510_Study_Color_Field_GEOM.sgd] CC
+
+if { ![regexp {0:1} [Children CC 0]] } {
+  puts "Error: An empty document was created"
+} else {
+  puts "OK: Document was created"
+}