Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix MC which uses simgrid::xbt::string
[simgrid.git] / src / surf / PropertyHolder.cpp
index 97331c6..2eda708 100644 (file)
@@ -9,33 +9,30 @@
 namespace simgrid {
 namespace surf {
 
-PropertyHolder::PropertyHolder(xbt_dict_t props)
-: properties_(props)
-{
-}
+PropertyHolder::PropertyHolder() = default;
 
 PropertyHolder::~PropertyHolder() {
   xbt_dict_free(&properties_);
 }
 
-/** @brief Return the property associated to the provided key (or NULL if not existing) */
+/** @brief Return the property associated to the provided key (or nullptr if not existing) */
 const char *PropertyHolder::getProperty(const char*key) {
-  if (properties_ == NULL)
-    return NULL;
-  return (const char*) xbt_dict_get_or_null(properties_,key);
+  if (properties_ == nullptr)
+    return nullptr;
+  return static_cast<const char*>(xbt_dict_get_or_null(properties_,key));
 }
 
 /** @brief Change the value of a given key in the property set */
 void PropertyHolder::setProperty(const char*key, const char*value) {
-  if (!properties_)
-    properties_ = xbt_dict_new();
-  xbt_dict_set(properties_, key, xbt_strdup(value), &xbt_free_f);
+  if (not properties_)
+    properties_ = xbt_dict_new_homogeneous(xbt_free_f);
+  xbt_dict_set(properties_, key, xbt_strdup(value), nullptr);
 }
 
 /** @brief Return the whole set of properties. Don't mess with it, dude! */
 xbt_dict_t PropertyHolder::getProperties() {
-  if (!properties_)
-    properties_ = xbt_dict_new();
+  if (not properties_)
+    properties_ = xbt_dict_new_homogeneous(xbt_free_f);
   return properties_;
 }