0029574: Protection of attributes retrieval against zero ID in Ocaf XML.

//Impacts attributes supporting user defined IDs.
This commit is contained in:
szy
2018-03-19 18:43:04 +03:00
committed by bugmaster
parent 9b74e2071c
commit cbc4faa980
11 changed files with 130 additions and 130 deletions

View File

@@ -115,6 +115,16 @@ Standard_Boolean XmlMDataStd_ExtStringArrayDriver::Paste
Handle(TDataStd_ExtStringArray)::DownCast(theTarget);
aExtStringArray->Init(aFirstInd, aLastInd);
// attribute id
Standard_GUID aGUID;
XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
aGUID = TDataStd_ExtStringArray::GetID(); //default case
else
aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
aExtStringArray->SetID(aGUID);
// Read string values.
if ( !separator.Length() && anElement.hasChildNodes() )
{
@@ -205,16 +215,6 @@ Standard_Boolean XmlMDataStd_ExtStringArrayDriver::Paste
#endif
aExtStringArray->SetDelta(aDelta);
// attribute id
Standard_GUID aGUID;
XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
aGUID = TDataStd_ExtStringArray::GetID(); //default case
else
aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
aExtStringArray->SetID(aGUID);
return Standard_True;
}