X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5ea1b51562a09193085e3e7dfcaf97e6a38db20a..5864abe6c82acc9c85607864fbbc9b873392162e:/include/xbt/Extendable.hpp diff --git a/include/xbt/Extendable.hpp b/include/xbt/Extendable.hpp index 37a7d41c59..37946b6958 100644 --- a/include/xbt/Extendable.hpp +++ b/include/xbt/Extendable.hpp @@ -52,9 +52,8 @@ private: public: static size_t extension_create(void (*deleter)(void*)) { - std::size_t res = deleters_.size(); deleters_.push_back(deleter); - return res; + return deleters_.size() - 1; } template static Extension extension_create(void (*deleter)(void*)) @@ -85,17 +84,14 @@ public: // Type-unsafe versions of the facet access methods: void* extension(std::size_t rank) const { - if (rank >= extensions_.size()) - return nullptr; - else - return extensions_.at(rank); + return rank < extensions_.size() ? extensions_[rank] : nullptr; } void extension_set(std::size_t rank, void* value, bool use_dtor = true) { if (rank >= extensions_.size()) extensions_.resize(rank + 1, nullptr); void* old_value = this->extension(rank); - extensions_.at(rank) = value; + extensions_[rank] = value; if (use_dtor && old_value != nullptr && deleters_[rank]) deleters_[rank](old_value); }