Index: generic/nsfObj.c =================================================================== diff -u -ra963e8896fd07c345ccfa034cbd043344edbf083 -ref01bf0b1fa63c266b7276dae6c1f376587221fa --- generic/nsfObj.c (.../nsfObj.c) (revision a963e8896fd07c345ccfa034cbd043344edbf083) +++ generic/nsfObj.c (.../nsfObj.c) (revision ef01bf0b1fa63c266b7276dae6c1f376587221fa) @@ -290,22 +290,26 @@ if (objPtr->typePtr != &NsfFlagObjType) { TclFreeIntRep(objPtr); flagPtr = NEW(NsfFlag); + assert(flagPtr != NULL); /*fprintf(stderr, "NsfFlagObjSet allocated NsfFlag %p for %s\n", flagPtr, ObjStr(objPtr));*/ objPtr->internalRep.twoPtrValue.ptr1 = (void *)flagPtr; objPtr->internalRep.twoPtrValue.ptr2 = NULL; objPtr->typePtr = &NsfFlagObjType; + } else { flagPtr = (NsfFlag *)objPtr->internalRep.twoPtrValue.ptr1; + assert(flagPtr != NULL); + /*fprintf(stderr, "NsfFlagObjSet %p reuses internal rep, serial (%d/%d)\n", objPtr, flagPtr->serial, serial);*/ - if (flagPtr->payload != NULL) {DECR_REF_COUNT2("flagPtr->payload", flagPtr->payload);} + if (flagPtr->payload != NULL) { + DECR_REF_COUNT2("flagPtr->payload", flagPtr->payload); + } } - assert(flagPtr != NULL); - /* * add values to the structure */