diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-23 10:53:41 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-23 10:53:41 (GMT) |
commit | f833c48881b0c5016ed36b5132c0a0e88aa6a487 (patch) | |
tree | 61c4572931f64207034d3efc5088b9cc1020512c /generic | |
parent | dd5c058db2f142f387695f101f9f6a9ea952bed4 (diff) | |
parent | 12d41d9775ba943e85a44f58c5930463712eca1f (diff) | |
download | tcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.zip tcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.tar.gz tcl-f833c48881b0c5016ed36b5132c0a0e88aa6a487.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclDecls.h | 14 | ||||
-rw-r--r-- | generic/tclObj.c | 2 |
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; |