diff options
author | dgp <dgp@users.sourceforge.net> | 2018-11-13 21:04:19 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2018-11-13 21:04:19 (GMT) |
commit | ad8c23540cd977b9e923053d0e86a56207761680 (patch) | |
tree | 141d7a82c5cb9b47ac8b675fef1c021a520d40ed /generic/tclCmdIL.c | |
parent | 4e39644e1e0b2c89d06189ae0d14527235499bd1 (diff) | |
parent | f7dfeb706fb75bccd0aae6cd6119fccdfb6bd8d0 (diff) | |
download | tcl-ad8c23540cd977b9e923053d0e86a56207761680.zip tcl-ad8c23540cd977b9e923053d0e86a56207761680.tar.gz tcl-ad8c23540cd977b9e923053d0e86a56207761680.tar.bz2 |
Implement TIP 445
Diffstat (limited to 'generic/tclCmdIL.c')
-rw-r--r-- | generic/tclCmdIL.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index a261fed..2a7b097 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -539,9 +539,9 @@ InfoBodyCmd( Tcl_Obj *const objv[]) /* Argument objects. */ { register Interp *iPtr = (Interp *) interp; - const char *name; + const char *name, *bytes; Proc *procPtr; - Tcl_Obj *bodyPtr, *resultPtr; + int numBytes; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "procname"); @@ -566,18 +566,8 @@ InfoBodyCmd( * the object do not invalidate the internal rep. */ - bodyPtr = procPtr->bodyPtr; - if (bodyPtr->bytes == NULL) { - /* - * The string rep might not be valid if the procedure has never been - * run before. [Bug #545644] - */ - - TclGetString(bodyPtr); - } - resultPtr = Tcl_NewStringObj(bodyPtr->bytes, bodyPtr->length); - - Tcl_SetObjResult(interp, resultPtr); + bytes = Tcl_GetStringFromObj(procPtr->bodyPtr, &numBytes); + Tcl_SetObjResult(interp, Tcl_NewStringObj(bytes, numBytes)); return TCL_OK; } |