summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
diff options
context:
space:
mode:
authorpooryorick <com.digitalsmarties@pooryorick.com>2018-05-05 16:38:27 (GMT)
committerpooryorick <com.digitalsmarties@pooryorick.com>2018-05-05 16:38:27 (GMT)
commit3a3fd2954f11d13424d941346c5ede39c3bf175f (patch)
treeb296d02849a41ef7aa58e8749d93e0042cf23142 /generic/tclInt.h
parent096a011c439f5f857ba14ba0827fcead0572233e (diff)
downloadtcl-3a3fd2954f11d13424d941346c5ede39c3bf175f.zip
tcl-3a3fd2954f11d13424d941346c5ede39c3bf175f.tar.gz
tcl-3a3fd2954f11d13424d941346c5ede39c3bf175f.tar.bz2
Avoid generating string representation when comparing the empty string.
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r--generic/tclInt.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 4db4576..4bdaf58 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -2735,6 +2735,10 @@ MODULE_SCOPE long tclObjsShared[TCL_MAX_SHARED_OBJ_STATS];
MODULE_SCOPE char * tclEmptyStringRep;
MODULE_SCOPE char tclEmptyString;
+enum CheckEmptyStringResult {
+ TCL_EMPTYSTRING_UNKNOWN = -1, TCL_EMPTYSTRING_NO, TCL_EMPTYSTRING_YES
+};
+
/*
*----------------------------------------------------------------
* Procedures shared among Tcl modules but not used by the outside world,
@@ -2875,6 +2879,7 @@ MODULE_SCOPE int TclCheckArrayTraces(Tcl_Interp *interp, Var *varPtr,
Var *arrayPtr, Tcl_Obj *name, int index);
MODULE_SCOPE int TclCheckBadOctal(Tcl_Interp *interp,
const char *value);
+MODULE_SCOPE int TclCheckEmptyString(Tcl_Obj *objPtr);
MODULE_SCOPE int TclChanCaughtErrorBypass(Tcl_Interp *interp,
Tcl_Channel chan);
MODULE_SCOPE Tcl_ObjCmdProc TclChannelNamesCmd;
@@ -4455,6 +4460,11 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
#define TclIsPureByteArray(objPtr) \
(((objPtr)->typePtr==&tclByteArrayType) && ((objPtr)->bytes==NULL))
+#define TclIsPureDict(objPtr) \
+ (((objPtr)->bytes==NULL) && ((objPtr)->typePtr==&tclDictType))
+
+#define TclIsPureList(objPtr) \
+ (((objPtr)->bytes==NULL) && ((objPtr)->typePtr==&tclListType))
/*
*----------------------------------------------------------------