summaryrefslogtreecommitdiffstats
path: root/generic/tclLiteral.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-06-06 07:59:21 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-06-06 07:59:21 (GMT)
commitbd4765cf50cf1df6abe07db4cacd8fcae2e950c8 (patch)
tree958bb8220ddac106c7759510e38d3b961fdf3b04 /generic/tclLiteral.c
parent10e31bc252115c3c1a4f1892c14c875e37af6e7a (diff)
parent9d7e696016d924ae175c552e503b4dfb2c806884 (diff)
downloadtcl-bd4765cf50cf1df6abe07db4cacd8fcae2e950c8.zip
tcl-bd4765cf50cf1df6abe07db4cacd8fcae2e950c8.tar.gz
tcl-bd4765cf50cf1df6abe07db4cacd8fcae2e950c8.tar.bz2
Squelch compiler warnings, but make refCount of type unsigned int.
Diffstat (limited to 'generic/tclLiteral.c')
-rw-r--r--generic/tclLiteral.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/generic/tclLiteral.c b/generic/tclLiteral.c
index 464f565..6407c37 100644
--- a/generic/tclLiteral.c
+++ b/generic/tclLiteral.c
@@ -227,7 +227,9 @@ TclCreateLiteral(
if (flags & LITERAL_ON_HEAP) {
ckfree(bytes);
}
- globalPtr->refCount++;
+ if (globalPtr->refCount != (unsigned) -1) {
+ globalPtr->refCount++;
+ }
return objPtr;
}
}
@@ -625,7 +627,7 @@ TclAddLiteralObj(
lPtr = &envPtr->literalArrayPtr[objIndex];
lPtr->objPtr = objPtr;
Tcl_IncrRefCount(objPtr);
- lPtr->refCount = (size_t)-1; /* i.e., unused */
+ lPtr->refCount = (unsigned) -1; /* i.e., unused */
lPtr->nextPtr = NULL;
if (litPtrPtr) {
@@ -848,7 +850,7 @@ TclReleaseLiteral(
* literal table entry (decrement the ref count of the object).
*/
- if (entryPtr->refCount-- <= 1) {
+ if ((entryPtr->refCount != (unsigned)-1) && (entryPtr->refCount-- <= 1)) {
if (prevPtr == NULL) {
globalTablePtr->buckets[index] = entryPtr->nextPtr;
} else {
@@ -1174,7 +1176,7 @@ TclVerifyLocalLiteralTable(
for (localPtr=localTablePtr->buckets[i] ; localPtr!=NULL;
localPtr=localPtr->nextPtr) {
count++;
- if (localPtr->refCount != -1) {
+ if (localPtr->refCount != (size_t)-1) {
bytes = TclGetStringFromObj(localPtr->objPtr, &length);
Tcl_Panic("%s: local literal \"%.*s\" had bad refCount %d",
"TclVerifyLocalLiteralTable",