Index: generic/nsfObj.c =================================================================== diff -u -r4344f09a497442a67dd503dcdce348a376491749 -r9fafad1fd703c9ee24aa9b32d820c313853bf2b5 --- generic/nsfObj.c (.../nsfObj.c) (revision 4344f09a497442a67dd503dcdce348a376491749) +++ generic/nsfObj.c (.../nsfObj.c) (revision 9fafad1fd703c9ee24aa9b32d820c313853bf2b5) @@ -351,12 +351,14 @@ Mixinreg *mixinRegPtr = (Mixinreg *)objPtr->internalRep.twoPtrValue.ptr1; assert(mixinRegPtr); - /*fprintf(stderr, "MixinregFreeInternalRep freeing mixinReg %p class %p guard %p\n", - mixinRegPtr, mixinRegPtr->class, mixinRegPtr->guardObj);*/ + /*fprintf(stderr, "MixinregFreeInternalRep freeing mixinReg %p class %p guard %p refcount before decr %d\n", + mixinRegPtr, mixinRegPtr->mixin, mixinRegPtr->guardObj, (&(mixinRegPtr->mixin)->object)->refCount);*/ + /* * Decrement refCounts */ - NsfObjectRefCountDecr(&(mixinRegPtr->mixin)->object); + NsfCleanupObject(&(mixinRegPtr->mixin)->object, "MixinregFreeInternalRep"); + if (mixinRegPtr->guardObj) {DECR_REF_COUNT2("mixinRegPtr->guardObj", mixinRegPtr->guardObj);} /* @@ -453,8 +455,8 @@ NsfObjectRefCountIncr((&mixin->object)); if (guardObj) {INCR_REF_COUNT2("mixinRegPtr->guardObj", guardObj);} - /*fprintf(stderr, "MixinregSetFromAny alloc mixinReg %p class %p guard %p\n", - mixinRegPtr, mixinRegPtr->mixin, mixinRegPtr->guardObj);*/ + /*fprintf(stderr, "MixinregSetFromAny alloc mixinReg %p class %p guard %p object->refCount %d\n", + mixinRegPtr, mixinRegPtr->mixin, mixinRegPtr->guardObj, ((&mixin->object)->refCount));*/ /* * Free the old interal representation and store own structure as internal