From ae3d8c2663d41600acdf5c50127a50fd42136169 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 20 Dec 2020 00:39:24 +0100 Subject: [PATCH] dtoolbase: More elegant fix for NeverFreeMemory memory leak Better fix for 74983d19a41d5fbf006cb269d6b1adc9f705dc99 is to just switch to an std::multimap. This couldn't go in the 1.10.x branch due to the risk of ABI change. --- dtool/src/dtoolbase/neverFreeMemory.I | 6 +----- dtool/src/dtoolbase/neverFreeMemory.h | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/dtool/src/dtoolbase/neverFreeMemory.I b/dtool/src/dtoolbase/neverFreeMemory.I index bc608040e3..6e5216e993 100644 --- a/dtool/src/dtoolbase/neverFreeMemory.I +++ b/dtool/src/dtoolbase/neverFreeMemory.I @@ -80,11 +80,7 @@ Page(void *start, size_t size) : */ INLINE bool NeverFreeMemory::Page:: operator < (const NeverFreeMemory::Page &other) const { - if (_remaining != other._remaining) { - return _remaining < other._remaining; - } else { - return _next < other._next; - } + return _remaining < other._remaining; } /** diff --git a/dtool/src/dtoolbase/neverFreeMemory.h b/dtool/src/dtoolbase/neverFreeMemory.h index 8396313015..6b1390c26e 100644 --- a/dtool/src/dtoolbase/neverFreeMemory.h +++ b/dtool/src/dtoolbase/neverFreeMemory.h @@ -57,7 +57,7 @@ private: size_t _remaining; }; - typedef std::set Pages; + typedef std::multiset Pages; Pages _pages; size_t _total_alloc;