Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | * generic/tclVar.c (TclPtrSetVar): fix valgrind-detected error when newValuePtr is the interp's result obj. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8c944e4622758e32da6501e20a87f916 |
User & Date: | mig 2011-08-04 18:40:05 |
Context
2011-08-04
| ||
23:12 | [Bug 3386197]: Plug memory leak in unstacking of zlib transforms. check-in: 89ff730dfa user: dkf tags: trunk | |
18:40 | * generic/tclVar.c (TclPtrSetVar): fix valgrind-detected error when newValuePtr is the interp's resu... check-in: 8c944e4622 user: mig tags: trunk | |
16:35 | More changes tidying. check-in: 3fbc04d14b user: dgp tags: trunk | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2011-08-04 Donal K. Fellows <[email protected]> * generic/tclAssembly.c (FreeAssemblyEnv): [Bug 3384840]: Plug another possible memory leak due to over-complex code for freeing the table of labels. 2011-08-04 Reinhard Max <[email protected]> | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 | 2011-08-04 Miguel Sofer <[email protected]> * generic/tclVar.c (TclPtrSetVar): fix valgrind-detected error when newValuePtr is the interp's result obj. 2011-08-04 Donal K. Fellows <[email protected]> * generic/tclAssembly.c (FreeAssemblyEnv): [Bug 3384840]: Plug another possible memory leak due to over-complex code for freeing the table of labels. 2011-08-04 Reinhard Max <[email protected]> |
︙ | ︙ |
Changes to generic/tclVar.c.
︙ | ︙ | |||
1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 | int index) /* Index of local var where part1 is to be * found. */ { Interp *iPtr = (Interp *) interp; Tcl_Obj *oldValuePtr; Tcl_Obj *resultPtr = NULL; int result; /* * If the variable is in a hashtable and its hPtr field is NULL, then we * may have an upvar to an array element where the array was deleted or an * upvar to a namespace variable whose namespace was deleted. Generate an * error (allowing the variable to be reset would screw up our storage * allocation and is meaningless anyway). | > | 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 | int index) /* Index of local var where part1 is to be * found. */ { Interp *iPtr = (Interp *) interp; Tcl_Obj *oldValuePtr; Tcl_Obj *resultPtr = NULL; int result; int cleanupOnEarlyError = (newValuePtr->refCount == 0); /* * If the variable is in a hashtable and its hPtr field is NULL, then we * may have an upvar to an array element where the array was deleted or an * upvar to a namespace variable whose namespace was deleted. Generate an * error (allowing the variable to be reset would screw up our storage * allocation and is meaningless anyway). |
︙ | ︙ | |||
1993 1994 1995 1996 1997 1998 1999 | } if (TclIsVarUndefined(varPtr)) { TclCleanupVar(varPtr, arrayPtr); } return resultPtr; earlyError: | | | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 | } if (TclIsVarUndefined(varPtr)) { TclCleanupVar(varPtr, arrayPtr); } return resultPtr; earlyError: if (cleanupOnEarlyError) { Tcl_DecrRefCount(newValuePtr); } goto cleanup; } /* *---------------------------------------------------------------------- |
︙ | ︙ |