diff --git a/src/kits/support/Referenceable.cpp b/src/kits/support/Referenceable.cpp index 92d6cc53c7..9c6fa15550 100644 --- a/src/kits/support/Referenceable.cpp +++ b/src/kits/support/Referenceable.cpp @@ -3,12 +3,23 @@ * Distributed under the terms of the MIT License. */ + #include +//#define TRACE_REFERENCEABLE +#ifdef TRACE_REFERENCEABLE +# include +# define TRACE(x, ...) ktrace_printf(x, __VA_ARGS__); +#else +# define TRACE(x, ...) +#endif + + BReferenceable::BReferenceable(bool deleteWhenUnreferenced) - : fReferenceCount(1), - fDeleteWhenUnreferenced(deleteWhenUnreferenced) + : + fReferenceCount(1), + fDeleteWhenUnreferenced(deleteWhenUnreferenced) { } @@ -23,6 +34,8 @@ BReferenceable::AcquireReference() { if (atomic_add(&fReferenceCount, 1) == 0) FirstReferenceAcquired(); + + TRACE("%p: acquire %ld\n", this, fReferenceCount); } @@ -30,6 +43,7 @@ bool BReferenceable::ReleaseReference() { bool unreferenced = (atomic_add(&fReferenceCount, -1) == 1); + TRACE("%p: release %ld\n", this, fReferenceCount); if (unreferenced) LastReferenceReleased(); return unreferenced;