summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-03-31 14:44:08 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-03-31 14:44:08 (GMT)
commit10952df2eeecd0c888b84a745514751d1afdba90 (patch)
treed48eeeb9077c37bf71190fdbb2502c4fc5844c03 /generic/tclObj.c
parenta2d9b3e8a09c3dec292aa87ef452d752b0762173 (diff)
downloadtcl-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.c21
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) {