Posted to tcl by kbk at Mon Apr 30 18:57:13 GMT 2007view pretty
Index: generic/tclProc.c =================================================================== RCS file: /cvsroot/tcl/tcl/generic/tclProc.c,v retrieving revision 1.112 diff -u -b -u -r1.112 tclProc.c --- generic/tclProc.c 25 Apr 2007 21:59:28 -0000 1.112 +++ generic/tclProc.c 30 Apr 2007 18:55:45 -0000 @@ -230,7 +230,8 @@ * cannot assume that 'line' is valid here, we have to check. */ - if ((context.type == TCL_LOCATION_SOURCE) && context.line + if (context.type == TCL_LOCATION_SOURCE) { + if (context.line && (context.nline >= 4) && (context.line[3] >= 0)) { int isNew; CmdFrame *cfPtr = (CmdFrame *) ckalloc(sizeof(CmdFrame)); @@ -245,6 +246,7 @@ if (context.type == TCL_LOCATION_SOURCE) { cfPtr->data.eval.path = context.data.eval.path; + Tcl_IncrRefCount(cfPtr->data.eval.path); /* * Transfer of reference. The reference going away (release of @@ -260,7 +262,10 @@ cfPtr->cmd.str.len = 0; Tcl_SetHashValue(Tcl_CreateHashEntry(iPtr->linePBodyPtr, - (char *) procPtr, &isNew), cfPtr); + (char *) procPtr, &isNew), + cfPtr); + } + Tcl_DecrRefCount(context.data.eval.path); } }