hrev52868 adds 1 changeset to branch 'master'
old head: b6840f36101d1649bd4a65f703122287e43ddddf
new head: fc8e5be1c8091c5461fa631688b3846765a7b1bb
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=fc8e5be1c809+%5Eb6840f36101d
----------------------------------------------------------------------------
fc8e5be1c809: HashMap: Fix the build with GCC 7.
[ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev52868
Commit: fc8e5be1c8091c5461fa631688b3846765a7b1bb
URL: https://git.haiku-os.org/haiku/commit/?id=fc8e5be1c809
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Fri Feb 15 00:52:45 2019 UTC
----------------------------------------------------------------------------
2 files changed, 10 insertions(+), 3 deletions(-)
headers/private/shared/HashMap.h | 10 +++++++++-
src/kits/network/libnetapi/NetworkCookieJar.cpp | 3 +--
----------------------------------------------------------------------------
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<Key, Value>::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 {