diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | generic/tclListObj.c | 12 |
2 files changed, 9 insertions, 7 deletions
@@ -1,3 +1,7 @@ +2011-04-27 Don Porter <dgp@users.sourceforge.net> + + * generic/tclListObj.c: FreeListInternalRep() cleanup. + 2011-04-21 Don Porter <dgp@users.sourceforge.net> * generic/tclInt.h: Use macro to set List intreps. diff --git a/generic/tclListObj.c b/generic/tclListObj.c index 7955e19..7d0743d 100644 --- a/generic/tclListObj.c +++ b/generic/tclListObj.c @@ -1647,16 +1647,14 @@ static void FreeListInternalRep( Tcl_Obj *listPtr) /* List object with internal rep to free. */ { - register List *listRepPtr = ListRepPtr(listPtr); - register Tcl_Obj **elemPtrs = &listRepPtr->elements; - register Tcl_Obj *objPtr; - int numElems = listRepPtr->elemCount; - int i; + List *listRepPtr = ListRepPtr(listPtr); if (--listRepPtr->refCount <= 0) { + Tcl_Obj **elemPtrs = &listRepPtr->elements; + int i, numElems = listRepPtr->elemCount; + for (i = 0; i < numElems; i++) { - objPtr = elemPtrs[i]; - Tcl_DecrRefCount(objPtr); + Tcl_DecrRefCount(elemPtrs[i]); } ckfree(listRepPtr); } |