diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-03-31 14:44:08 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-03-31 14:44:08 (GMT) |
commit | 10952df2eeecd0c888b84a745514751d1afdba90 (patch) | |
tree | d48eeeb9077c37bf71190fdbb2502c4fc5844c03 /generic/tclObj.c | |
parent | a2d9b3e8a09c3dec292aa87ef452d752b0762173 (diff) | |
download | tcl-10952df2eeecd0c888b84a745514751d1afdba90.zip tcl-10952df2eeecd0c888b84a745514751d1afdba90.tar.gz tcl-10952df2eeecd0c888b84a745514751d1afdba90.tar.bz2 |
Since Tcl_AppendPrintfToObj() now understands the %p format, we can use it. Eliminating some internal string buffers.
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r-- | generic/tclObj.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c index 8069a7c..dfcaff0 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -4455,7 +4455,6 @@ Tcl_RepresentationCmd( int objc, Tcl_Obj *const objv[]) { - char ptrBuffer[2*TCL_INTEGER_SPACE+6]; Tcl_Obj *descObj; if (objc != 2) { @@ -4469,18 +4468,20 @@ Tcl_RepresentationCmd( * "1872361827361287" */ - sprintf(ptrBuffer, "%p", (void *) objv[1]); descObj = Tcl_ObjPrintf("value is a %s with a refcount of %d," - " object pointer at %s", - objv[1]->typePtr ? objv[1]->typePtr->name : "pure string", - objv[1]->refCount, ptrBuffer); + " object pointer at %p", + objv[1]->typePtr ? objv[1]->typePtr->name : "pure string", + objv[1]->refCount, objv[1]); if (objv[1]->typePtr) { - sprintf(ptrBuffer, "%p:%p", - (void *) objv[1]->internalRep.twoPtrValue.ptr1, - (void *) objv[1]->internalRep.twoPtrValue.ptr2); - Tcl_AppendPrintfToObj(descObj, ", internal representation %s", - ptrBuffer); + if (objv[1]->typePtr == &tclDoubleType) { + Tcl_AppendPrintfToObj(descObj, ", internal representation %g", + objv[1]->internalRep.doubleValue); + } else { + Tcl_AppendPrintfToObj(descObj, ", internal representation %p:%p", + (void *) objv[1]->internalRep.twoPtrValue.ptr1, + (void *) objv[1]->internalRep.twoPtrValue.ptr2); + } } if (objv[1]->bytes) { |