summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tcl.decls7
-rw-r--r--generic/tclDecls.h9
-rw-r--r--generic/tclInt.h1
-rw-r--r--generic/tclObj.c2
-rw-r--r--generic/tclStubInit.c2
5 files changed, 10 insertions, 11 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 9dd4ed5..7af8cea 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -134,9 +134,10 @@ declare 28 {
declare 29 {
Tcl_Obj *Tcl_DuplicateObj(Tcl_Obj *objPtr)
}
-declare 30 {deprecated {Kept only for deployed refcounting macros}} {
- void TclFreeObj(Tcl_Obj *objPtr)
-}
+# Removed in 9.0
+#declare 30 {
+# void TclFreeObj(Tcl_Obj *objPtr)
+#}
declare 31 {
int Tcl_GetBoolean(Tcl_Interp *interp, const char *src, int *boolPtr)
}
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 0f9508a..57e467b 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -136,9 +136,7 @@ EXTERN Tcl_Obj * Tcl_DbNewStringObj(const char *bytes, size_t length,
const char *file, int line);
/* 29 */
EXTERN Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr);
-/* 30 */
-TCL_DEPRECATED("Kept only for deployed refcounting macros")
-void TclFreeObj(Tcl_Obj *objPtr);
+/* Slot 30 is reserved */
/* 31 */
EXTERN int Tcl_GetBoolean(Tcl_Interp *interp, const char *src,
int *boolPtr);
@@ -1811,7 +1809,7 @@ typedef struct TclStubs {
Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, size_t length, const char *file, int line); /* 28 */
Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
- TCL_DEPRECATED_API("Kept only for deployed refcounting macros") void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
+ void (*reserved30)(void);
int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *boolPtr); /* 31 */
int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *boolPtr); /* 32 */
unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 33 */
@@ -2517,8 +2515,7 @@ extern const TclStubs *tclStubsPtr;
(tclStubsPtr->tcl_DbNewStringObj) /* 28 */
#define Tcl_DuplicateObj \
(tclStubsPtr->tcl_DuplicateObj) /* 29 */
-#define TclFreeObj \
- (tclStubsPtr->tclFreeObj) /* 30 */
+/* Slot 30 is reserved */
#define Tcl_GetBoolean \
(tclStubsPtr->tcl_GetBoolean) /* 31 */
#define Tcl_GetBooleanFromObj \
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 5fc16fd..542b307 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -4043,6 +4043,7 @@ MODULE_SCOPE int TclObjCallVarTraces(Interp *iPtr, Var *arrayPtr,
*/
MODULE_SCOPE int TclCompareObjKeys(void *keyPtr, Tcl_HashEntry *hPtr);
+MODULE_SCOPE void TclFreeObj(Tcl_Obj *objPtr);
MODULE_SCOPE void TclFreeObjEntry(Tcl_HashEntry *hPtr);
MODULE_SCOPE TCL_HASH_TYPE TclHashObjKey(Tcl_HashTable *tablePtr, void *keyPtr);
diff --git a/generic/tclObj.c b/generic/tclObj.c
index f8d9157..69e9b98 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -3648,7 +3648,7 @@ int
Tcl_IsShared(
Tcl_Obj *objPtr) /* The object to test for being shared. */
{
- return ((objPtr)->refCount > 1);
+ return ((objPtr)->refCount + 1 > 2);
}
/*
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 98d30d2..3a13cf9 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -805,7 +805,7 @@ const TclStubs tclStubs = {
Tcl_DbNewObj, /* 27 */
Tcl_DbNewStringObj, /* 28 */
Tcl_DuplicateObj, /* 29 */
- TclFreeObj, /* 30 */
+ 0, /* 30 */
Tcl_GetBoolean, /* 31 */
Tcl_GetBooleanFromObj, /* 32 */
Tcl_GetByteArrayFromObj, /* 33 */