Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 9, 2015, 4:10:21 PM (9 years ago)
Author:
landauf
Message:

removed the 'bAddRef' argument from StrongPtr's constructor. it was a bad hack and shouldn't be used. in fact, it was only used to avoid recursive dependencies if one of the four base objects (Namespace, Level, Gametype, Scene) referenced itself with a StrongPtr.
instead of the 'bAddRef'-hack BaseObject now stores the references in a new construct called StrongOrWeakPtr which can either store the reference in a StrongPtr (like it did before) or in a WeakPtr (which is a cleaner alternative to 'bAddRef=true')

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/object/StrongPtr.h

    r10555 r10578  
    142142            }
    143143
    144             /// Constructor: Initializes the strong pointer with a pointer to an object. @param pointer The pointer @param bAddRef If true, the reference counter is increased. Don't set this to false unless you know exactly what you're doing! (for example to avoid circular references if the @c this pointer of the possessing object is stored)
    145             inline StrongPtr(T* pointer, bool bAddRef = true) : pointer_(pointer), base_(pointer)
    146             {
    147                 if (this->base_ && bAddRef)
     144            /// Constructor: Initializes the strong pointer with a pointer to an object. @param pointer The pointer
     145            inline StrongPtr(T* pointer) : pointer_(pointer), base_(pointer)
     146            {
     147                if (this->base_)
    148148                    this->base_->incrementReferenceCount();
    149149            }
Note: See TracChangeset for help on using the changeset viewer.