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
@@ -89,6 +89,16 @@ Standard_Boolean XmlMDataStd_ReferenceArrayDriver::Paste(const XmlObjMgt_Persist
Handle(TDataStd_ReferenceArray) aReferenceArray = Handle(TDataStd_ReferenceArray)::DownCast(theTarget);
aReferenceArray->Init(aFirstInd, aLastInd);
// attribute id
Standard_GUID aGUID;
XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
aGUID = TDataStd_ReferenceArray::GetID(); //default case
else
aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
aReferenceArray->SetID(aGUID);
if (!anElement.hasChildNodes())
{
TCollection_ExtendedString aMessageString =
@@ -153,16 +163,6 @@ Standard_Boolean XmlMDataStd_ReferenceArrayDriver::Paste(const XmlObjMgt_Persist
}
aReferenceArray->SetValue(i, tLab);
// attribute id
Standard_GUID aGUID;
XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
aGUID = TDataStd_ReferenceArray::GetID(); //default case
else
aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
aReferenceArray->SetID(aGUID);
return Standard_True;
}