From 4efe27fc4e23953262dd9979e680ac54504abd8d Mon Sep 17 00:00:00 2001 From: jfa Date: Thu, 21 Feb 2019 12:49:05 +0300 Subject: [PATCH] 0030510: Application Framework - add missing NULL check within TDataStd_RealArray::ChangeArray() --- src/TDataStd/TDataStd_RealArray.cxx | 22 ++++++++++++---------- tests/bugs/caf/bug30510 | 11 +++++++++++ 2 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 tests/bugs/caf/bug30510 diff --git a/src/TDataStd/TDataStd_RealArray.cxx b/src/TDataStd/TDataStd_RealArray.cxx index 760e5adaa9..51c6038dc5 100644 --- a/src/TDataStd/TDataStd_RealArray.cxx +++ b/src/TDataStd/TDataStd_RealArray.cxx @@ -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 index 0000000000..babe929763 --- /dev/null +++ b/tests/bugs/caf/bug30510 @@ -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" +} -- 2.20.1