summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r--generic/tclObj.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 3130bdd..cd44d06 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -360,7 +360,6 @@ TclInitObjSubsystem(void)
Tcl_InitHashTable(&typeTable, TCL_STRING_KEYS);
Tcl_MutexUnlock(&tableMutex);
- Tcl_RegisterObjType(&tclByteArrayType);
Tcl_RegisterObjType(&tclDoubleType);
Tcl_RegisterObjType(&tclStringType);
Tcl_RegisterObjType(&tclListType);
@@ -1621,7 +1620,7 @@ Tcl_GetString(
/*
*----------------------------------------------------------------------
*
- * Tcl_GetStringFromObj/TclGetStringFromObj --
+ * Tcl_GetStringFromObj --
*
* Returns the string representation's byte array pointer and length for
* an object.
@@ -1641,12 +1640,12 @@ Tcl_GetString(
*----------------------------------------------------------------------
*/
-#undef TclGetStringFromObj
+#undef Tcl_GetStringFromObj
char *
-TclGetStringFromObj(
+Tcl_GetStringFromObj(
Tcl_Obj *objPtr, /* Object whose string rep byte pointer should
* be returned. */
- int *lengthPtr) /* If non-NULL, the location where the string
+ size_t *lengthPtr) /* If non-NULL, the location where the string
* rep's byte array length should * be stored.
* If NULL, no length is stored. */
{
@@ -1676,17 +1675,16 @@ TclGetStringFromObj(
}
}
if (lengthPtr != NULL) {
- *lengthPtr = (objPtr->length < INT_MAX)? objPtr->length: INT_MAX;
+ *lengthPtr = objPtr->length;
}
return objPtr->bytes;
}
-#undef Tcl_GetStringFromObj
char *
-Tcl_GetStringFromObj(
+TclGetStringFromObj(
Tcl_Obj *objPtr, /* Object whose string rep byte pointer should
* be returned. */
- size_t *lengthPtr) /* If non-NULL, the location where the string
+ int *lengthPtr) /* If non-NULL, the location where the string
* rep's byte array length should * be stored.
* If NULL, no length is stored. */
{
@@ -1708,7 +1706,7 @@ Tcl_GetStringFromObj(
objPtr->typePtr->name);
}
objPtr->typePtr->updateStringProc(objPtr);
- if (objPtr->bytes == NULL
+ if (objPtr->bytes == NULL || objPtr->length == TCL_INDEX_NONE
|| objPtr->bytes[objPtr->length] != '\0') {
Tcl_Panic("UpdateStringProc for type '%s' "
"failed to create a valid string rep",
@@ -1716,16 +1714,11 @@ Tcl_GetStringFromObj(
}
}
if (lengthPtr != NULL) {
-#if TCL_MAJOR_VERSION > 8
- *lengthPtr = objPtr->length;
-#else
- *lengthPtr = ((size_t)(unsigned)(objPtr->length + 1)) - 1;
-#endif
+ *lengthPtr = (objPtr->length < INT_MAX)? objPtr->length: INT_MAX;
}
return objPtr->bytes;
}
-
/*
*----------------------------------------------------------------------
*
@@ -2490,7 +2483,6 @@ Tcl_GetIntFromObj(
return TCL_OK;
#endif
}
-
/*
*----------------------------------------------------------------------
@@ -3916,8 +3908,8 @@ TclHashObjKey(
void *keyPtr) /* Key from which to compute hash value. */
{
Tcl_Obj *objPtr = (Tcl_Obj *)keyPtr;
- size_t length;
- const char *string = Tcl_GetStringFromObj(objPtr, &length);
+ const char *string = TclGetString(objPtr);
+ size_t length = objPtr->length;
TCL_HASH_TYPE result = 0;
/*