summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdIL.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-11-13 21:04:19 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-11-13 21:04:19 (GMT)
commitad8c23540cd977b9e923053d0e86a56207761680 (patch)
tree141d7a82c5cb9b47ac8b675fef1c021a520d40ed /generic/tclCmdIL.c
parent4e39644e1e0b2c89d06189ae0d14527235499bd1 (diff)
parentf7dfeb706fb75bccd0aae6cd6119fccdfb6bd8d0 (diff)
downloadtcl-ad8c23540cd977b9e923053d0e86a56207761680.zip
tcl-ad8c23540cd977b9e923053d0e86a56207761680.tar.gz
tcl-ad8c23540cd977b9e923053d0e86a56207761680.tar.bz2
Implement TIP 445
Diffstat (limited to 'generic/tclCmdIL.c')
-rw-r--r--generic/tclCmdIL.c18
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;
}