From fc8e5be1c8091c5461fa631688b3846765a7b1bb Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 14 Feb 2019 19:52:45 -0500 Subject: [PATCH] HashMap: Fix the build with GCC 7. --- headers/private/shared/HashMap.h | 10 +++++++++- src/kits/network/libnetapi/NetworkCookieJar.cpp | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/headers/private/shared/HashMap.h b/headers/private/shared/HashMap.h index d7168c14c4..08e03f9dbc 100644 --- a/headers/private/shared/HashMap.h +++ b/headers/private/shared/HashMap.h @@ -163,7 +163,7 @@ public: typedef typename HashMap::Iterator Iterator; SynchronizedHashMap() : Locker("synchronized hash map") {} - ~SynchronizedHashMap() { Lock(); } + ~SynchronizedHashMap() { Locker::Lock(); } status_t InitCheck() const { @@ -186,6 +186,14 @@ public: return fMap.Remove(key); } + Value Remove(Iterator& it) + { + MapLocker locker(this); + if (!locker.IsLocked()) + return Value(); + return fMap.Remove(it); + } + void Clear() { MapLocker locker(this); diff --git a/src/kits/network/libnetapi/NetworkCookieJar.cpp b/src/kits/network/libnetapi/NetworkCookieJar.cpp index e6e27ef098..3014c69d5d 100644 --- a/src/kits/network/libnetapi/NetworkCookieJar.cpp +++ b/src/kits/network/libnetapi/NetworkCookieJar.cpp @@ -85,7 +85,6 @@ BNetworkCookieJar::~BNetworkCookieJar() PrivateHashMap::Iterator it = fCookieHashMap->GetIterator(); while (it.HasNext()) { BNetworkCookieList* list = it.Next().value; - it.Remove(); list->LockForWriting(); delete list; } @@ -787,7 +786,7 @@ BNetworkCookieJar::UrlIterator::Remove() fLastList->RemoveItemAt(fLastIndex); if (fLastList->CountItems() == 0) { - fIterator->fCookieMapIterator.Remove(); + fCookieJar->fCookieHashMap->Remove(fIterator->fCookieMapIterator); delete fLastList; fLastList = NULL; } else {