[haiku-commits] haiku: hrev52868 - headers/private/shared src/kits/network/libnetapi

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 14 Feb 2019 19:54:03 -0500 (EST)

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 {


Other related posts:

  • » [haiku-commits] haiku: hrev52868 - headers/private/shared src/kits/network/libnetapi - waddlesplash