diff options
Diffstat (limited to 'dep/g3dlite/source/ReferenceCount.cpp')
-rw-r--r-- | dep/g3dlite/source/ReferenceCount.cpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/dep/g3dlite/source/ReferenceCount.cpp b/dep/g3dlite/source/ReferenceCount.cpp deleted file mode 100644 index 2e1f117e0d9..00000000000 --- a/dep/g3dlite/source/ReferenceCount.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/** - @file ReferenceCount.cpp - - Reference Counting Garbage Collector for C++ - - @maintainer Morgan McGuire, http://graphics.cs.williams.edu - @cite Adapted and extended from Justin Miller's "RGC" class that appeared in BYTE magazine. - @cite See also http://www.jelovic.com/articles/cpp_without_memory_errors_slides.htm - - @created 2001-10-23 - @edited 2009-04-25 -*/ -#include "G3D/platform.h" -#include "G3D/ReferenceCount.h" - -namespace G3D { - -ReferenceCountedObject::ReferenceCountedObject() : - ReferenceCountedObject_refCount(0), - ReferenceCountedObject_weakPointer(0) { - - debugAssertM(isValidHeapPointer(this), - "Reference counted objects must be allocated on the heap."); -} - -void ReferenceCountedObject::ReferenceCountedObject_zeroWeakPointers() { - // Tell all of my weak pointers that I'm gone. - - _WeakPtrLinkedList* node = ReferenceCountedObject_weakPointer; - - while (node != NULL) { - // Notify the weak pointer that it is going away - node->weakPtr->objectCollected(); - - // Free the node and advance - _WeakPtrLinkedList* tmp = node; - node = node->next; - delete tmp; - } -} - -ReferenceCountedObject::~ReferenceCountedObject() {} - - -ReferenceCountedObject::ReferenceCountedObject(const ReferenceCountedObject& notUsed) : - ReferenceCountedObject_refCount(0), - ReferenceCountedObject_weakPointer(0) { - (void)notUsed; - debugAssertM(G3D::isValidHeapPointer(this), - "Reference counted objects must be allocated on the heap."); -} - -ReferenceCountedObject& ReferenceCountedObject::operator=(const ReferenceCountedObject& other) { - (void)other; - // Nothing changes when I am assigned; the reference count on - // both objects is the same (although my super-class probably - // changes). - return *this; -} - -} // G3D |