[haiku-commits] r39871 - in haiku/trunk: headers/private/shared src/add-ons/kernel/network/stack src/apps/mediaplayer/playlist src/apps/powerstatus src/apps/showimage ...

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 16 Dec 2010 17:35:42 +0100 (CET)

Author: bonefish
Date: 2010-12-16 17:35:42 +0100 (Thu, 16 Dec 2010)
New Revision: 39871
Changeset: http://dev.haiku-os.org/changeset/39871

Modified:
   haiku/trunk/headers/private/shared/Referenceable.h
   haiku/trunk/headers/private/shared/WeakReferenceable.h
   haiku/trunk/src/add-ons/kernel/network/stack/net_socket.cpp
   haiku/trunk/src/apps/mediaplayer/playlist/PLItemsCommand.cpp
   haiku/trunk/src/apps/mediaplayer/playlist/Playlist.cpp
   haiku/trunk/src/apps/powerstatus/DriverInterface.h
   haiku/trunk/src/apps/showimage/ImageCache.h
   haiku/trunk/src/bin/debug/profile/Image.cpp
   haiku/trunk/src/bin/debug/profile/Image.h
   haiku/trunk/src/bin/debug/profile/ProfileResult.cpp
   haiku/trunk/src/bin/debug/profile/SharedImage.h
   haiku/trunk/src/bin/debug/profile/Team.cpp
   haiku/trunk/src/bin/debug/profile/profile.cpp
   haiku/trunk/src/kits/support/Referenceable.cpp
   haiku/trunk/src/servers/app/FontCache.cpp
   haiku/trunk/src/servers/app/ServerPicture.cpp
   haiku/trunk/src/servers/registrar/MessageDeliverer.cpp
Log:
* Removed the obsolescent [B]Reference[able] API and replaced the remaining
  uses. Fixes the gcc 2 acpi build.
* Renamed WeakReferenceable::{Add,Remove}Reference() to
  {Acquire,Release}Reference() for consistency.


Modified: haiku/trunk/headers/private/shared/Referenceable.h
===================================================================
--- haiku/trunk/headers/private/shared/Referenceable.h  2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/headers/private/shared/Referenceable.h  2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004-2009, Ingo Weinhold, ingo_weinhold@xxxxxxx
+ * Copyright 2004-2010, Ingo Weinhold, ingo_weinhold@xxxxxxx
  * Distributed under the terms of the MIT License.
  */
 #ifndef _REFERENCEABLE_H
@@ -9,13 +9,12 @@
 #include <SupportDefs.h>
 
 
+// #pragma mark - BReferenceable
+
+
 class BReferenceable {
 public:
-                                                               BReferenceable(
-                                                                       bool 
deleteWhenUnreferenced = true);
-                                                                               
// TODO: The parameter is deprecated.
-                                                                               
// Override LastReferenceReleased()
-                                                                               
// instead!
+                                                               
BReferenceable();
        virtual                                         ~BReferenceable();
 
                        void                            AcquireReference();
@@ -25,35 +24,18 @@
                        int32                           CountReferences() const
                                                                        { 
return fReferenceCount; }
 
-                       // deprecate aliases
-       inline  void                            AddReference();
-       inline  bool                            RemoveReference();
-
 protected:
        virtual void                            FirstReferenceAcquired();
        virtual void                            LastReferenceReleased();
 
 protected:
                        vint32                          fReferenceCount;
-                       bool                            fDeleteWhenUnreferenced;
 };
 
 
-void
-BReferenceable::AddReference()
-{
-       AcquireReference();
-}
+// #pragma mark - BReference
 
 
-bool
-BReferenceable::RemoveReference()
-{
-       return ReleaseReference();
-}
-
-
-// BReference
 template<typename Type = BReferenceable>
 class BReference {
 public:
@@ -145,107 +127,4 @@
 };
 
 
-// #pragma mark Obsolete API
-
-// TODO: To be phased out!
-
-
-namespace BPrivate {
-
-
-// Reference
-template<typename Type = BReferenceable>
-class Reference {
-public:
-       Reference()
-               : fObject(NULL)
-       {
-       }
-
-       Reference(Type* object, bool alreadyHasReference = false)
-               : fObject(NULL)
-       {
-               SetTo(object, alreadyHasReference);
-       }
-
-       Reference(const Reference<Type>& other)
-               : fObject(NULL)
-       {
-               SetTo(other.fObject);
-       }
-
-       ~Reference()
-       {
-               Unset();
-       }
-
-       void SetTo(Type* object, bool alreadyHasReference = false)
-       {
-               if (object != NULL && !alreadyHasReference)
-                       object->AddReference();
-
-               Unset();
-
-               fObject = object;
-       }
-
-       void Unset()
-       {
-               if (fObject) {
-                       fObject->RemoveReference();
-                       fObject = NULL;
-               }
-       }
-
-       Type* Get() const
-       {
-               return fObject;
-       }
-
-       Type* Detach()
-       {
-               Type* object = fObject;
-               fObject = NULL;
-               return object;
-       }
-
-       Type& operator*() const
-       {
-               return *fObject;
-       }
-
-       Type* operator->() const
-       {
-               return fObject;
-       }
-
-       Reference& operator=(const Reference<Type>& other)
-       {
-               SetTo(other.fObject);
-               return *this;
-       }
-
-       bool operator==(const Reference<Type>& other) const
-       {
-               return (fObject == other.fObject);
-       }
-
-       bool operator!=(const Reference<Type>& other) const
-       {
-               return (fObject != other.fObject);
-       }
-
-private:
-       Type*   fObject;
-};
-
-
-typedef BReferenceable Referenceable;
-
-}      // namespace BPrivate
-
-using BPrivate::Referenceable;
-using BPrivate::Reference;
-
-
 #endif // _REFERENCEABLE_H

Modified: haiku/trunk/headers/private/shared/WeakReferenceable.h
===================================================================
--- haiku/trunk/headers/private/shared/WeakReferenceable.h      2010-12-16 
14:29:37 UTC (rev 39870)
+++ haiku/trunk/headers/private/shared/WeakReferenceable.h      2010-12-16 
16:35:42 UTC (rev 39871)
@@ -14,7 +14,7 @@
 template<typename Type> class WeakReferenceable;
 
 template<typename Type>
-class WeakPointer : public Referenceable {
+class WeakPointer : public BReferenceable {
 public:
                        Type*                           Get();
                        bool                            Put();
@@ -41,10 +41,10 @@
                                                                
WeakReferenceable(Type* object);
                                                                
~WeakReferenceable();
 
-                       void                            AddReference()
+                       void                            AcquireReference()
                                                                        { 
fPointer->_GetUnchecked(); }
 
-                       bool                            RemoveReference()
+                       bool                            ReleaseReference()
                                                                        { 
return fPointer->Put(); }
 
                        int32                           CountReferences() const
@@ -119,7 +119,7 @@
 
                if (pointer != NULL) {
                        fPointer = pointer;
-                       fPointer->AddReference();
+                       fPointer->AcquireReference();
                        fObject = pointer->Get();
                }
        }
@@ -131,7 +131,7 @@
                                fPointer->Put();
                                fObject = NULL;
                        }
-                       fPointer->RemoveReference();
+                       fPointer->ReleaseReference();
                        fPointer = NULL;
                }
        }
@@ -287,7 +287,7 @@
 inline
 WeakReferenceable<Type>::~WeakReferenceable()
 {
-       fPointer->RemoveReference();
+       fPointer->ReleaseReference();
 }
 
 
@@ -295,7 +295,7 @@
 inline WeakPointer<Type>*
 WeakReferenceable<Type>::GetWeakPointer()
 {
-       fPointer->AddReference();
+       fPointer->AcquireReference();
        return fPointer;
 }
 

Modified: haiku/trunk/src/add-ons/kernel/network/stack/net_socket.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/network/stack/net_socket.cpp 2010-12-16 
14:29:37 UTC (rev 39870)
+++ haiku/trunk/src/add-ons/kernel/network/stack/net_socket.cpp 2010-12-16 
16:35:42 UTC (rev 39871)
@@ -148,7 +148,7 @@
 {
        ASSERT(!is_in_socket_list && parent != NULL);
 
-       parent->RemoveReference();
+       parent->ReleaseReference();
        parent = NULL;
 
        mutex_lock(&sSocketLock);
@@ -157,7 +157,7 @@
 
        is_in_socket_list = true;
 
-       RemoveReference();
+       ReleaseReference();
 }
 
 
@@ -458,7 +458,7 @@
 {
        net_socket_private* socket = (net_socket_private*)_socket;
        socket->first_info->free(socket->first_protocol);
-       socket->RemoveReference();
+       socket->ReleaseReference();
 }
 
 
@@ -674,7 +674,7 @@
        if (socket->CountReferences() == 0)
                return false;
 
-       socket->AddReference();
+       socket->AcquireReference();
        return true;
 }
 
@@ -683,7 +683,7 @@
 socket_release(net_socket* _socket)
 {
        net_socket_private* socket = (net_socket_private*)_socket;
-       return socket->RemoveReference();
+       return socket->ReleaseReference();
 }
 
 
@@ -739,7 +739,7 @@
 
        net_socket_private* socket = parent->connected_children.RemoveHead();
        if (socket != NULL) {
-               socket->AddReference();
+               socket->AcquireReference();
                socket->RemoveFromParent();
                parent->child_count--;
                *_socket = socket;

Modified: haiku/trunk/src/apps/mediaplayer/playlist/PLItemsCommand.cpp
===================================================================
--- haiku/trunk/src/apps/mediaplayer/playlist/PLItemsCommand.cpp        
2010-12-16 14:29:37 UTC (rev 39870)
+++ haiku/trunk/src/apps/mediaplayer/playlist/PLItemsCommand.cpp        
2010-12-16 16:35:42 UTC (rev 39871)
@@ -35,7 +35,7 @@
                return;
        if (deleteItems) {
                for (int32 i = 0; i < count; i++)
-                       items[i]->RemoveReference();
+                       items[i]->ReleaseReference();
        }
        delete[] items;
        items = NULL;

Modified: haiku/trunk/src/apps/mediaplayer/playlist/Playlist.cpp
===================================================================
--- haiku/trunk/src/apps/mediaplayer/playlist/Playlist.cpp      2010-12-16 
14:29:37 UTC (rev 39870)
+++ haiku/trunk/src/apps/mediaplayer/playlist/Playlist.cpp      2010-12-16 
16:35:42 UTC (rev 39871)
@@ -235,7 +235,7 @@
                PlaylistItem* item = RemoveItem(i, false);
                _NotifyItemRemoved(i);
                if (deleteItems)
-                       item->RemoveReference();
+                       item->ReleaseReference();
        }
        SetCurrentItemIndex(-1);
 }

Modified: haiku/trunk/src/apps/powerstatus/DriverInterface.h
===================================================================
--- haiku/trunk/src/apps/powerstatus/DriverInterface.h  2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/apps/powerstatus/DriverInterface.h  2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -46,7 +46,7 @@
 };
 
 
-class PowerStatusDriverInterface : public Monitor, public Referenceable {
+class PowerStatusDriverInterface : public Monitor, public BReferenceable {
 public:
                                                PowerStatusDriverInterface();
                                                ~PowerStatusDriverInterface();

Modified: haiku/trunk/src/apps/showimage/ImageCache.h
===================================================================
--- haiku/trunk/src/apps/showimage/ImageCache.h 2010-12-16 14:29:37 UTC (rev 
39870)
+++ haiku/trunk/src/apps/showimage/ImageCache.h 2010-12-16 16:35:42 UTC (rev 
39871)
@@ -30,7 +30,7 @@
 };
 
 
-class BitmapOwner : public Referenceable {
+class BitmapOwner : public BReferenceable {
 public:
                                                                
BitmapOwner(BBitmap* bitmap);
        virtual                                         ~BitmapOwner();

Modified: haiku/trunk/src/bin/debug/profile/Image.cpp
===================================================================
--- haiku/trunk/src/bin/debug/profile/Image.cpp 2010-12-16 14:29:37 UTC (rev 
39870)
+++ haiku/trunk/src/bin/debug/profile/Image.cpp 2010-12-16 16:35:42 UTC (rev 
39871)
@@ -16,11 +16,11 @@
        fCreationEvent(creationEvent),
        fDeletionEvent(-1)
 {
-       fImage->AddReference();
+       fImage->AcquireReference();
 }
 
 
 Image::~Image()
 {
-       fImage->RemoveReference();
+       fImage->ReleaseReference();
 }

Modified: haiku/trunk/src/bin/debug/profile/Image.h
===================================================================
--- haiku/trunk/src/bin/debug/profile/Image.h   2010-12-16 14:29:37 UTC (rev 
39870)
+++ haiku/trunk/src/bin/debug/profile/Image.h   2010-12-16 16:35:42 UTC (rev 
39871)
@@ -8,7 +8,7 @@
 #include "SharedImage.h"
 
 
-class Image : public Referenceable {
+class Image : public BReferenceable {
 public:
                                                                
Image(SharedImage* image,
                                                                        const 
image_info& info, team_id owner,

Modified: haiku/trunk/src/bin/debug/profile/ProfileResult.cpp
===================================================================
--- haiku/trunk/src/bin/debug/profile/ProfileResult.cpp 2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/bin/debug/profile/ProfileResult.cpp 2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -32,13 +32,13 @@
        fTotalHits(0),
        fImageID(id)
 {
-       fImage->AddReference();
+       fImage->AcquireReference();
 }
 
 
 ImageProfileResult::~ImageProfileResult()
 {
-       fImage->RemoveReference();
+       fImage->ReleaseReference();
 }
 
 

Modified: haiku/trunk/src/bin/debug/profile/SharedImage.h
===================================================================
--- haiku/trunk/src/bin/debug/profile/SharedImage.h     2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/bin/debug/profile/SharedImage.h     2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -45,7 +45,7 @@
 };
 
 
-class SharedImage : public Referenceable {
+class SharedImage : public BReferenceable {
 public:
                                                                SharedImage();
                                                                ~SharedImage();

Modified: haiku/trunk/src/bin/debug/profile/Team.cpp
===================================================================
--- haiku/trunk/src/bin/debug/profile/Team.cpp  2010-12-16 14:29:37 UTC (rev 
39870)
+++ haiku/trunk/src/bin/debug/profile/Team.cpp  2010-12-16 16:35:42 UTC (rev 
39871)
@@ -51,7 +51,7 @@
                remove_team_debugger(fID);
 
        for (int32 i = 0; Image* image = fImages.ItemAt(i); i++)
-               image->RemoveReference();
+               image->ReleaseReference();
 }
 
 
@@ -277,5 +277,5 @@
        }
 
        image->SetDeletionEvent(event);
-       image->RemoveReference();
+       image->ReleaseReference();
 }

Modified: haiku/trunk/src/bin/debug/profile/profile.cpp
===================================================================
--- haiku/trunk/src/bin/debug/profile/profile.cpp       2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/bin/debug/profile/profile.cpp       2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -113,7 +113,7 @@
        {
                // release image references
                for (ImageMap::iterator it = fImages.begin(); it != 
fImages.end(); ++it)
-                       it->second->RemoveReference();
+                       it->second->ReleaseReference();
 
                if (fSummaryProfileResult != NULL)
                        fSummaryProfileResult->ReleaseReference();

Modified: haiku/trunk/src/kits/support/Referenceable.cpp
===================================================================
--- haiku/trunk/src/kits/support/Referenceable.cpp      2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/kits/support/Referenceable.cpp      2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -16,10 +16,9 @@
 #endif
 
 
-BReferenceable::BReferenceable(bool deleteWhenUnreferenced)
+BReferenceable::BReferenceable()
        :
-       fReferenceCount(1),
-       fDeleteWhenUnreferenced(deleteWhenUnreferenced)
+       fReferenceCount(1)
 {
 }
 
@@ -59,6 +58,5 @@
 void
 BReferenceable::LastReferenceReleased()
 {
-       if (fDeleteWhenUnreferenced)
-               delete this;
+       delete this;
 }

Modified: haiku/trunk/src/servers/app/FontCache.cpp
===================================================================
--- haiku/trunk/src/servers/app/FontCache.cpp   2010-12-16 14:29:37 UTC (rev 
39870)
+++ haiku/trunk/src/servers/app/FontCache.cpp   2010-12-16 16:35:42 UTC (rev 
39871)
@@ -38,7 +38,7 @@
 {
        FontMap::Iterator iterator = fFontCacheEntries.GetIterator();
        while (iterator.HasNext())
-               iterator.Next().value->RemoveReference();
+               iterator.Next().value->ReleaseReference();
 }
 
 // Default
@@ -62,7 +62,7 @@
 
        if (entry) {
                // the entry was already there
-               entry->AddReference();
+               entry->AcquireReference();
 //printf("FontCacheEntryFor(%ld): %p\n", font.GetFamilyAndStyle(), entry);
                return entry;
        }
@@ -95,7 +95,7 @@
        }
 //printf("FontCacheEntryFor(%ld): %p (insert)\n", font.GetFamilyAndStyle(), 
entry);
 
-       entry->AddReference();
+       entry->AcquireReference();
        return entry;
 }
 
@@ -107,7 +107,7 @@
        if (!entry)
                return;
        entry->UpdateUsage();
-       entry->RemoveReference();
+       entry->ReleaseReference();
 }
 
 static const int32 kMaxEntryCount = 30;
@@ -154,7 +154,7 @@
        while (iterator.HasNext()) {
                if (iterator.Next().value == leastUsedEntry) {
                        iterator.Remove();
-                       leastUsedEntry->RemoveReference();
+                       leastUsedEntry->ReleaseReference();
                        break;
                }
        }

Modified: haiku/trunk/src/servers/app/ServerPicture.cpp
===================================================================
--- haiku/trunk/src/servers/app/ServerPicture.cpp       2010-12-16 14:29:37 UTC 
(rev 39870)
+++ haiku/trunk/src/servers/app/ServerPicture.cpp       2010-12-16 16:35:42 UTC 
(rev 39871)
@@ -920,7 +920,7 @@
 
                delete fPictures;
        }
-       
+
        if (fPushed != NULL) {
                fPushed->SetOwner(NULL);
                fPushed->ReleaseReference();
@@ -938,7 +938,7 @@
        // May remove the last reference and then we will self-destruct right 
then.
        // Setting fOwner to NULL would access free'd memory. If owner is 
another
        // ServerApp, it's expected to already have a reference of course.
-       Reference<ServerPicture> _(this);
+       BReference<ServerPicture> _(this);
 
        if (fOwner != NULL)
                fOwner->RemovePicture(this);

Modified: haiku/trunk/src/servers/registrar/MessageDeliverer.cpp
===================================================================
--- haiku/trunk/src/servers/registrar/MessageDeliverer.cpp      2010-12-16 
14:29:37 UTC (rev 39870)
+++ haiku/trunk/src/servers/registrar/MessageDeliverer.cpp      2010-12-16 
16:35:42 UTC (rev 39871)
@@ -159,10 +159,10 @@
        Besides the flattened message it also stores the when the message was
        created and when the delivery attempts shall time out.
 */
-class MessageDeliverer::Message : public Referenceable {
+class MessageDeliverer::Message : public BReferenceable {
 public:
        Message(void *data, int32 dataSize, bigtime_t timeout)
-               : Referenceable(true),
+               : BReferenceable(),
                  fData(data),
                  fDataSize(dataSize),
                  fCreationTime(system_time()),
@@ -243,13 +243,13 @@
                  fToken(token)
        {
                if (fMessage)
-                       fMessage->AddReference();
+                       fMessage->AcquireReference();
        }
 
        ~TargetMessage()
        {
                if (fMessage)
-                       fMessage->RemoveReference();
+                       fMessage->ReleaseReference();
        }
 
        Message *GetMessage() const
@@ -653,7 +653,7 @@
                free(data);
                return B_NO_MEMORY;
        }
-       Reference<Message> _(message, true);
+       BReference<Message> _(message, true);
 
        // add the message to the respective target ports
        BAutolock locker(fLock);


Other related posts:

  • » [haiku-commits] r39871 - in haiku/trunk: headers/private/shared src/add-ons/kernel/network/stack src/apps/mediaplayer/playlist src/apps/powerstatus src/apps/showimage ... - ingo_weinhold