summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-07-07 14:23:37 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-07-07 14:23:37 (GMT)
commitad7e9fe6258f269fc6d63457a7cfa93ff0ea9f59 (patch)
treedac737871a8656cb3290b033af84e5ca38412c14 /generic/tclExecute.c
parent18581927256e573c7e9441dbd65a2dc9fe391111 (diff)
downloadtcl-ad7e9fe6258f269fc6d63457a7cfa93ff0ea9f59.zip
tcl-ad7e9fe6258f269fc6d63457a7cfa93ff0ea9f59.tar.gz
tcl-ad7e9fe6258f269fc6d63457a7cfa93ff0ea9f59.tar.bz2
TIP #636 cleanup: Eliminate the use of Tcl_ObjTypeLength() et al, which look public but are internal and not documented anywhere.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index c77f924..0d9705f 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -4680,7 +4680,7 @@ TEBCresume(
TRACE_ERROR(interp);
goto gotError;
}
- if (Tcl_ObjTypeIndex(interp, valuePtr, index, &objResultPtr)!=TCL_OK) {
+ if (TclObjTypeHasProc(valuePtr,indexProc)(interp, valuePtr, index, &objResultPtr)!=TCL_OK) {
CACHE_STACK_INFO();
TRACE_ERROR(interp);
goto gotError;
@@ -4762,7 +4762,8 @@ TEBCresume(
*/
/* special case for AbstractList */
- if (TclObjTypeHasProc(valuePtr,indexProc)) {
+ Tcl_ObjTypeIndexProc *indexProc = TclObjTypeHasProc(valuePtr,indexProc);
+ if (indexProc) {
length = TclObjTypeHasProc(valuePtr, lengthProc)(valuePtr);
/* Decode end-offset index values. */
@@ -4770,7 +4771,7 @@ TEBCresume(
/* Compute value @ index */
DECACHE_STACK_INFO();
- if (Tcl_ObjTypeIndex(interp, valuePtr, index, &objResultPtr)!=TCL_OK) {
+ if (indexProc(interp, valuePtr, index, &objResultPtr)!=TCL_OK) {
CACHE_STACK_INFO();
TRACE_ERROR(interp);
goto gotError;
@@ -4854,15 +4855,16 @@ TEBCresume(
* Compute the new variable value.
*/
- if (TclObjTypeHasProc(valuePtr, setElementProc)) {
+ Tcl_ObjTypeSetElement *setElementProc = TclObjTypeHasProc(valuePtr, setElementProc);
+ if (setElementProc) {
DECACHE_STACK_INFO();
- objResultPtr = Tcl_ObjTypeSetElement(interp,
- valuePtr, numIndices,
- &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
+ objResultPtr = setElementProc(interp,
+ valuePtr, numIndices,
+ &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
} else {
objResultPtr = TclLsetFlat(interp, valuePtr, numIndices,
- &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
+ &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
}
if (!objResultPtr) {
CACHE_STACK_INFO();
@@ -4985,9 +4987,10 @@ TEBCresume(
fromIdx = TclIndexDecode(fromIdx, objc - 1);
- if (TclObjTypeHasProc(valuePtr, sliceProc)) {
+ Tcl_ObjTypeSliceProc *sliceProc = TclObjTypeHasProc(valuePtr, sliceProc);
+ if (sliceProc) {
DECACHE_STACK_INFO();
- if (Tcl_ObjTypeSlice(interp, valuePtr, fromIdx, toIdx, &objResultPtr) != TCL_OK) {
+ if (sliceProc(interp, valuePtr, fromIdx, toIdx, &objResultPtr) != TCL_OK) {
objResultPtr = NULL;
}
} else {
@@ -5027,7 +5030,7 @@ TEBCresume(
do {
if (isAbstractList) {
DECACHE_STACK_INFO();
- if (Tcl_ObjTypeIndex(interp, value2Ptr, i, &o) != TCL_OK) {
+ if (TclObjTypeHasProc(value2Ptr,indexProc)(interp, value2Ptr, i, &o) != TCL_OK) {
CACHE_STACK_INFO();
TRACE_ERROR(interp);
goto gotError;