message: Restore inadverent changes to Attr handling
diff: @@ -125,11 +125,11 @@ Attribute<T> &IO::DefineAttribute(const std::string &name, const T &value,
  auto itExistingAttribute = m_Attributes.find(globalName);
  if (itExistingAttribute != m_Attributes.end())
  - {
  - if (helper::ValueToString(value) !=
  - itExistingAttribute->second->GetInfo()["Value"])
  {
  if (itExistingAttribute->second->m_Type == helper::GetDataType<T>())
  + {
  + if (!itExistingAttribute->second->Equals(
  + static_cast<const void *>(&value), 1))
  {
  Attribute<T> &a =
  static_cast<Attribute<T> &>(*itExistingAttribute->second);
  @@ -144,6 +144,7 @@ Attribute<T> &IO::DefineAttribute(const std::string &name, const T &value,
  globalName, itExistingAttribute->second.get(), Data);
  }
  }
  + }
  else
  {
  helper::Throw<std::invalid_argument>(
  @@ -154,7 +155,6 @@ Attribute<T> &IO::DefineAttribute(const std::string &name, const T &value,
  ". Type cannot be changed to " +
  ToString(helper::GetDataType<T>()));
  }
  - }
  return static_cast<Attribute<T> &>(*itExistingAttribute->second);
  }
  else
  @@ -199,15 +199,11 @@ IO::DefineAttribute(const std::string &name, const T *array,
  auto itExistingAttribute = m_Attributes.find(globalName);
  if (itExistingAttribute != m_Attributes.end())
  - {
  - const std::string arrayValues(
  - "{ " +
  - helper::VectorToCSV(std::vector<T>(array, array + elements)) +
  - " }");
  -
  - if (itExistingAttribute->second->GetInfo()["Value"] != arrayValues)
  {
  if (itExistingAttribute->second->m_Type == helper::GetDataType<T>())
  + {
  + if (!itExistingAttribute->second->Equals(
  + static_cast<const void *>(array), elements))
  {
  Attribute<T> &a =
  static_cast<Attribute<T> &>(*itExistingAttribute->second);
  @@ -220,6 +216,7 @@ IO::DefineAttribute(const std::string &name, const T *array,
  e.second->NotifyEngineAttribute(globalName, &a, Data);
  }
  }
  + }
  else
  {
  helper::Throw<std::invalid_argument>(
  @@ -230,7 +227,6 @@ IO::DefineAttribute(const std::string &name, const T *array,
  ". Type cannot be changed to " +
  ToString(helper::GetDataType<T>()));
  }
  - }
  return static_cast<Attribute<T> &>(*itExistingAttribute->second);
  }
  else
  