From 09f28e079b813399b2afd00bd88376c5c7b42560 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Sat, 22 May 2021 22:15:05 +0200 Subject: [PATCH] Don't increase refcount when existing elem is overwritten. --- src/smpi/include/smpi_keyvals.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/smpi/include/smpi_keyvals.hpp b/src/smpi/include/smpi_keyvals.hpp index 8017f09ba3..ab076557b7 100644 --- a/src/smpi/include/smpi_keyvals.hpp +++ b/src/smpi/include/smpi_keyvals.hpp @@ -131,10 +131,11 @@ template int Keyval::attr_put(int keyval, void* attr_value){ return MPI_ERR_ARG; smpi_key_elem& elem = elem_it->second; - elem.refcount++; int flag=0; auto p = attributes().emplace(keyval, attr_value); - if (not p.second) { + if (p.second) { + elem.refcount++; + } else { int ret = call_deleter((T*)this, elem, keyval,p.first->second,&flag); // overwrite previous value p.first->second = attr_value; -- 2.20.1