From f290b76551f7120a2f5c1f4778613ea4e4b32717 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 6 Feb 2019 14:53:51 +0100 Subject: [PATCH] Assert that there is no memory leak (help scan-build). --- src/instr/instr_platform.cpp | 1 + src/s4u/s4u_Engine.cpp | 9 +++++---- src/smpi/bindings/smpi_pmpi_topo.cpp | 5 ++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/instr/instr_platform.cpp b/src/instr/instr_platform.cpp index f0433c4d37..6a9ca45f95 100644 --- a/src/instr/instr_platform.cpp +++ b/src/instr/instr_platform.cpp @@ -160,6 +160,7 @@ static void instr_netzone_on_creation(simgrid::s4u::NetZone& netzone) std::string id = netzone.get_name(); if (simgrid::instr::Container::get_root() == nullptr) { simgrid::instr::NetZoneContainer* root = new simgrid::instr::NetZoneContainer(id, 0, nullptr); + xbt_assert(simgrid::instr::Container::get_root() == root); if (TRACE_smpi_is_enabled()) { simgrid::instr::ContainerType* mpi = root->type_->by_name_or_create("MPI"); diff --git a/src/s4u/s4u_Engine.cpp b/src/s4u/s4u_Engine.cpp index 0576607a7e..aa28e1a034 100644 --- a/src/s4u/s4u_Engine.cpp +++ b/src/s4u/s4u_Engine.cpp @@ -55,10 +55,11 @@ Engine::~Engine() /** @brief Retrieve the engine singleton */ Engine* Engine::get_instance() { - if (s4u::Engine::instance_ == nullptr) - return new Engine(0, nullptr); - else - return s4u::Engine::instance_; + if (s4u::Engine::instance_ == nullptr) { + auto e = new Engine(0, nullptr); + xbt_assert(s4u::Engine::instance_ == e); + } + return s4u::Engine::instance_; } void Engine::shutdown() diff --git a/src/smpi/bindings/smpi_pmpi_topo.cpp b/src/smpi/bindings/smpi_pmpi_topo.cpp index ddfa8dc88d..a3b94ba369 100644 --- a/src/smpi/bindings/smpi_pmpi_topo.cpp +++ b/src/smpi/bindings/smpi_pmpi_topo.cpp @@ -21,8 +21,11 @@ int PMPI_Cart_create(MPI_Comm comm_old, int ndims, int* dims, int* periodic, int return MPI_ERR_ARG; } else{ simgrid::smpi::Topo_Cart* topo = new simgrid::smpi::Topo_Cart(comm_old, ndims, dims, periodic, reorder, comm_cart); - if(*comm_cart==MPI_COMM_NULL) + if (*comm_cart == MPI_COMM_NULL) { delete topo; + } else { + xbt_assert((*comm_cart)->topo() == topo); + } return MPI_SUCCESS; } } -- 2.20.1