X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/35e51746af39c4061a0336771f8f31bb371fae23..6063afbddf453571e145b5236294c8631d9eecb2:/src/surf/storage_n11.cpp diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index eb203e53b6..5e3b24b9f5 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -28,12 +28,6 @@ static inline void routing_storage_type_free(void *r) free(stype); } -static inline void routing_storage_host_free(void *r) -{ - xbt_dynar_t dyn = (xbt_dynar_t) r; - xbt_dynar_free(&dyn); -} - static void check_disk_attachment() { xbt_lib_cursor_t cursor; @@ -56,7 +50,6 @@ void storage_register_callbacks() instr_routing_define_callbacks(); ROUTING_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, xbt_free_f); - ROUTING_STORAGE_HOST_LEVEL = xbt_lib_add_level(storage_lib, routing_storage_host_free); ROUTING_STORAGE_TYPE_LEVEL = xbt_lib_add_level(storage_type_lib, routing_storage_type_free); SURF_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, [](void *self) { delete static_cast(self); @@ -153,10 +146,12 @@ void StorageN11Model::updateActionsState(double /*now*/, double delta) // which becomes the new file size action->file_->size = action->file_->current_position; - sg_size_t *psize = xbt_new(sg_size_t,1); - *psize = action->file_->size; - xbt_dict_t content_dict = action->storage_->content_; - xbt_dict_set(content_dict, action->file_->name, psize, nullptr); + sg_size_t* psize = new sg_size_t; + *psize = action->file_->size; + std::map* content_dict = action->storage_->content_; + auto entry = content_dict->find(action->file_->name); + delete entry->second; + entry->second = psize; } action->updateRemains(lmm_variable_getvalue(action->getVariable()) * delta); @@ -193,15 +188,15 @@ StorageAction *StorageN11::open(const char* mount, const char* path) XBT_DEBUG("\tOpen file '%s'",path); sg_size_t size; - sg_size_t* psize = (sg_size_t*)xbt_dict_get_or_null(content_, path); + sg_size_t* psize = nullptr; // if file does not exist create an empty file - if(psize) - size = *psize; + if (content_->find(path) != content_->end()) + size = *(content_->at(path)); else { - psize = xbt_new(sg_size_t,1); - size = 0; + psize = new sg_size_t; + size = 0; *psize = size; - xbt_dict_set(content_, path, psize, nullptr); + content_->insert({path, psize}); XBT_DEBUG("File '%s' was not found, file created.",path); } surf_file_t file = xbt_new0(s_surf_file_t,1);