summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-23 10:53:41 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-23 10:53:41 (GMT)
commitf833c48881b0c5016ed36b5132c0a0e88aa6a487 (patch)
tree61c4572931f64207034d3efc5088b9cc1020512c /generic
parentdd5c058db2f142f387695f101f9f6a9ea952bed4 (diff)
parent12d41d9775ba943e85a44f58c5930463712eca1f (diff)
downloadtcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.zip
tcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.tar.gz
tcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.tar.bz2
Merge 8.7
Diffstat (limited to 'generic')
-rw-r--r--generic/tclDecls.h14
-rw-r--r--generic/tclObj.c2
2 files changed, 16 insertions, 0 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 21cadb8..2986979 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -3988,6 +3988,8 @@ extern const TclStubs *tclStubsPtr;
#define Tcl_GetUnicode(objPtr) \
Tcl_GetUnicodeFromObj(objPtr, (size_t *)NULL)
#undef Tcl_GetIndexFromObjStruct
+#undef Tcl_GetBooleanFromObj
+#undef Tcl_GetBoolean
#undef Tcl_GetStringFromObj
#undef Tcl_GetUnicodeFromObj
#undef TclGetByteArrayFromObj
@@ -4013,6 +4015,12 @@ extern const TclStubs *tclStubsPtr;
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
(tclStubsPtr->tcl_GetIndexFromObjStruct((interp), (objPtr), (tablePtr), (offset), (msg), \
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
+#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
+ (sizeof(*(boolPtr)) == sizeof(int) ? tclStubsPtr->tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
+ Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
+#define Tcl_GetBoolean(interp, src, boolPtr) \
+ (sizeof(*(boolPtr)) == sizeof(int) ? tclStubsPtr->tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
+ Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
#else
#define Tcl_GetStringFromObj(objPtr, sizePtr) \
((sizeof(*(sizePtr)) == sizeof(int) && sizeof(int) != sizeof(size_t)) ? \
@@ -4033,6 +4041,12 @@ extern const TclStubs *tclStubsPtr;
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
((Tcl_GetIndexFromObjStruct)((interp), (objPtr), (tablePtr), (offset), (msg), \
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
+#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
+ (sizeof(*(boolPtr)) == sizeof(int) ? Tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
+ Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
+#define Tcl_GetBoolean(interp, src, boolPtr) \
+ (sizeof(*(boolPtr)) == sizeof(int) ? Tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
+ Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
#endif
#ifdef TCL_MEM_DEBUG
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 93cfcd1..d385ed0 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -2035,6 +2035,8 @@ Tcl_GetBoolFromObj(
} else if (flags == (int)sizeof(short)) {
*(short *)charPtr = result;
return TCL_OK;
+ } else {
+ Tcl_Panic("Wrong bool var for %s", "Tcl_GetBoolFromObj");
}
}
*charPtr = result;