summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r--generic/tclObj.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 7155ebb..dc129ab 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -3679,6 +3679,13 @@ Tcl_GetNumberFromObj(
void **clientDataPtr,
int *typePtr)
{
+ Tcl_ObjTypeLengthProc *lengthProc = TclObjTypeHasProc(objPtr, lengthProc);
+ if (lengthProc && lengthProc(objPtr) != 1) {
+ if (interp) {
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("expected number but got a list", -1));
+ }
+ return TCL_ERROR;
+ }
do {
if (TclHasInternalRep(objPtr, &tclDoubleType)) {
if (isnan(objPtr->internalRep.doubleValue)) {