Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [7e3db761c9] Refcounting error. Thanks rlehfeld! |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
99cb5d21213804ebabfc326c5fd71d0b |
User & Date: | dgp 2015-12-01 18:59:15 |
Context
2015-12-04
| ||
14:55 | [abeae90b4c] Error in Itcl_ClassVarResolver where carelessness in repeated use of the "hPtr" variable led to an (ItclVarLookup *) getting used as a (Tcl_Var *), with the expected crash resulting. check-in: 73f266f4a1 user: dgp tags: trunk | |
2015-12-01
| ||
18:59 | merge trunk check-in: edf6531a04 user: dgp tags: dgp-method-type | |
18:59 | [7e3db761c9] Refcounting error. Thanks rlehfeld! check-in: 99cb5d2121 user: dgp tags: trunk | |
2015-11-19
| ||
15:28 | Fix some memory access and lifetime errors exposed in mem-debug builds. check-in: 83fdcafa73 user: dgp tags: trunk | |
Changes
Changes to generic/itclObject.c.
︙ | ︙ | |||
3021 3022 3023 3024 3025 3026 3027 | } if (isDirectCall) { if (!found) { if (methodNamePtr != NULL) { Tcl_DecrRefCount(methodNamePtr); } methodNamePtr = objv[0]; | < | 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 | } if (isDirectCall) { if (!found) { if (methodNamePtr != NULL) { Tcl_DecrRefCount(methodNamePtr); } methodNamePtr = objv[0]; } } callbackPtr = Itcl_GetCurrentCallbackPtr(interp); newObjv = NULL; if (methodNamePtr != NULL) { if (iclsPtr->flags & (ITCL_TYPE|ITCL_WIDGETADAPTOR)) { char *myName; |
︙ | ︙ | |||
3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 | return result; } } incr = 1; newObjv = (Tcl_Obj **)ckalloc(sizeof(Tcl_Obj *)*(objc+incr)); myPtr = Tcl_NewStringObj("my", 2); Tcl_IncrRefCount(myPtr); newObjv[0] = myPtr; newObjv[1] = methodNamePtr; memcpy(newObjv+incr+1, objv+1, (sizeof(Tcl_Obj*)*(objc-1))); ItclShowArgs(1, "run CallPublicObjectCmd1", objc+incr, newObjv); Tcl_NRAddCallback(interp, CallPublicObjectCmd, oPtr, clsPtr, INT2PTR(objc+incr), newObjv); | > | 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 | return result; } } incr = 1; newObjv = (Tcl_Obj **)ckalloc(sizeof(Tcl_Obj *)*(objc+incr)); myPtr = Tcl_NewStringObj("my", 2); Tcl_IncrRefCount(myPtr); Tcl_IncrRefCount(methodNamePtr); newObjv[0] = myPtr; newObjv[1] = methodNamePtr; memcpy(newObjv+incr+1, objv+1, (sizeof(Tcl_Obj*)*(objc-1))); ItclShowArgs(1, "run CallPublicObjectCmd1", objc+incr, newObjv); Tcl_NRAddCallback(interp, CallPublicObjectCmd, oPtr, clsPtr, INT2PTR(objc+incr), newObjv); |
︙ | ︙ |