62#define NEW_REF( C, P ) ( (C*)RefCountClass::Set_Ref_Owner( W3DNEW C P, __FILE__, __LINE__ ) )
63#define SET_REF_OWNER( P ) ( RefCountClass::Set_Ref_Owner( P, __FILE__, __LINE__ ) )
67#define NEW_REF( C, P ) ( W3DNEW C P )
68#define SET_REF_OWNER( P ) P
79#define REF_PTR_SET(dst,src) { if (src) (src)->Add_Ref(); if (dst) (dst)->Release_Ref(); (dst) = (src); }
80#define REF_PTR_RELEASE(x) { if (x) x->Release_Ref(); x = NULL; }
116 Inc_Total_Refs(
this);
128 Inc_Total_Refs(
this);
148 Dec_Total_Refs(
this);
151 assert(NumRefs >= 0);
185 assert(NumRefs == 0);
199 static int TotalRefs;
ActiveRefStruct ActiveRefInfo
virtual ~RefCountClass(void)
static RefCountClass * Add_Active_Ref(RefCountClass *obj)
RefCountClass(const RefCountClass &)
static RefCountClass * Set_Ref_Owner(RefCountClass *obj, char *file, int line)
RefCountNodeClass ActiveRefNode
WWINLINE void Release_Ref(void) const
static RefCountListClass ActiveRefList
virtual void Delete_This(void)
static void Remove_Active_Ref(RefCountClass *obj)
static int Total_Refs(void)
static bool Validate_Active_Ref(RefCountClass *obj)
List< RefCountNodeClass * > RefCountListClass
DataNode< RefCountClass * > RefCountNodeClass