Since now TDataStd_ExtStringArray::Value() returns a constant reference to the string value.
Also, a draw-command GetExtStringArray is modified to manipulate with the string by a constant reference.
Added test case bugs/caf/bug23912
return 1;
}
- TCollection_ExtendedString anExtendedString;
- TCollection_AsciiString anAsciiString;
for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- anExtendedString = A->Value(i);
- anAsciiString = TCollection_AsciiString (A->Value(i),'?');
- //cout << anAsciiString.ToCString() << endl;
+ const TCollection_ExtendedString& anExtendedString = A->Value(i);
+ TCollection_AsciiString anAsciiString(A->Value(i),'?');
di << anAsciiString.ToCString();
if(i<A->Upper())
di<<" ";
Value (me; Index : Integer from Standard)
---Purpose: Returns the value of the <Index>th element of the array
--
+ ---C++: return const &
---C++: alias operator ()
returns ExtendedString from TCollection;
//=======================================================================
-//function : GetValue
+//function : Value
//purpose :
//=======================================================================
-TCollection_ExtendedString TDataStd_ExtStringArray::Value (const Standard_Integer index) const
+const TCollection_ExtendedString& TDataStd_ExtStringArray::Value (const Standard_Integer index) const
{
- if(myValue.IsNull()) return TCollection_ExtendedString();
- return myValue->Value(index);
+ if (myValue.IsNull())
+ {
+ static TCollection_ExtendedString staticEmptyValue;
+ return staticEmptyValue;
+ }
+ return myValue->Value(index);
}
-
-
//=======================================================================
//function : Lower
//purpose :
--- /dev/null
+puts "============"
+puts "OCC23912"
+puts "============"
+puts ""
+###################################################################################################################
+# TDataStd_ExtStringArray::Value() returns a copy of TCollection_ExtededString, but it might return a reference
+###################################################################################################################
+
+NewDocument D
+SetExtStringArray D 0:1 0 1 5 "A" "B" "C" "D" "E"
+set info [GetExtStringArray D 0:1]
+
+if { [regexp "A B C D E" $info] != 1 } {
+ puts "Error : function returns wrong value"
+} else {
+ puts "OK : function works properly"
+}
+
+
+
+
+
+
+