Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [9b352768e6] Plug memleak in INST_DICT_FIRST. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e88e23fbdbc46130f734cc155cb8c047 |
User & Date: | dgp 2014-07-11 15:44:42 |
Context
2014-07-11
| ||
18:20 | [1211aceef2] Fix refcount management of TclpTempFileName() that caused leak. check-in: 44648f6210 user: dgp tags: trunk | |
15:44 | [9b352768e6] Plug memleak in INST_DICT_FIRST. check-in: e88e23fbdb user: dgp tags: trunk | |
12:56 | Stop memleak in [info frame]. check-in: 1610c45009 user: dgp tags: trunk | |
Changes
Changes to generic/tclExecute.c.
︙ | ︙ | |||
7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 | case INST_DICT_FIRST: opnd = TclGetUInt4AtPtr(pc+1); TRACE(("%u => ", opnd)); dictPtr = POP_OBJECT(); searchPtr = ckalloc(sizeof(Tcl_DictSearch)); if (Tcl_DictObjFirst(interp, dictPtr, searchPtr, &keyPtr, &valuePtr, &done) != TCL_OK) { ckfree(searchPtr); TRACE_ERROR(interp); goto gotError; } TclNewObj(statePtr); statePtr->typePtr = &dictIteratorType; statePtr->internalRep.twoPtrValue.ptr1 = searchPtr; | > > > > > > > > | 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 | case INST_DICT_FIRST: opnd = TclGetUInt4AtPtr(pc+1); TRACE(("%u => ", opnd)); dictPtr = POP_OBJECT(); searchPtr = ckalloc(sizeof(Tcl_DictSearch)); if (Tcl_DictObjFirst(interp, dictPtr, searchPtr, &keyPtr, &valuePtr, &done) != TCL_OK) { /* * dictPtr is no longer on the stack, and we're not * moving it into the intrep of an iterator. We need * to drop the refcount [Tcl Bug 9b352768e6]. */ Tcl_DecrRefCount(dictPtr); ckfree(searchPtr); TRACE_ERROR(interp); goto gotError; } TclNewObj(statePtr); statePtr->typePtr = &dictIteratorType; statePtr->internalRep.twoPtrValue.ptr1 = searchPtr; |
︙ | ︙ |