summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-02-12 21:40:34 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-02-12 21:40:34 (GMT)
commit86a45bfad9b8aed72f65893e1096787aa4a58847 (patch)
tree9f7e322acf5e752c2b16c1341fc191b892c5d954
parenta2e7a2fdf93ecfdf0f2012b3cf22dfc5e9d37fa8 (diff)
downloadtcl-novem_no_register_objtypes.zip
tcl-novem_no_register_objtypes.tar.gz
tcl-novem_no_register_objtypes.tar.bz2
use longValue as internal repr in stead of wideValue. novem_no_register_objtypes
name new type "lindex" in stead of already existing "index"
-rw-r--r--generic/tcl.h2
-rw-r--r--generic/tclTestObj.c2
-rw-r--r--generic/tclUtil.c30
-rw-r--r--tests/obj.test20
4 files changed, 27 insertions, 27 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index 9c8f4a6..a46699d 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -2336,7 +2336,7 @@ TCLAPI void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
# undef Tcl_NewBooleanObj
# define Tcl_NewBooleanObj(val) \
- Tcl_DbNewLongObj((val)!=0, __FILE__, __LINE__)
+ Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
# undef Tcl_NewByteArrayObj
# define Tcl_NewByteArrayObj(bytes, len) \
Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
diff --git a/generic/tclTestObj.c b/generic/tclTestObj.c
index 185badb..9e8933a 100644
--- a/generic/tclTestObj.c
+++ b/generic/tclTestObj.c
@@ -996,7 +996,7 @@ TestobjCmd(
if (Tcl_GetDoubleFromObj(interp, varPtr[varIndex], &d) != TCL_OK) {
return TCL_ERROR;
}
- } else if (!strcmp(typeName, "index")) {
+ } else if (!strcmp(typeName, "lindex")) {
int index;
if (Tcl_GetIntForIndex(interp, varPtr[varIndex], 0, &index) != TCL_OK) {
return TCL_ERROR;
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 51888bf..b9229e6 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -118,7 +118,7 @@ static void UpdateStringOfIndex(Tcl_Obj *objPtr);
*/
static const Tcl_ObjType indexType = {
- "index", /* name */
+ "lindex", /* name */
NULL, /* freeIntRepProc */
NULL, /* dupIntRepProc */
UpdateStringOfIndex, /* updateStringProc */
@@ -3376,10 +3376,10 @@ Tcl_GetIntForIndex(
* be converted to one, use it.
*/
- if (objPtr->internalRep.wideValue > -2) {
- *indexPtr = objPtr->internalRep.wideValue;
+ if (objPtr->internalRep.longValue > -2) {
+ *indexPtr = objPtr->internalRep.longValue;
} else {
- *indexPtr = endValue + objPtr->internalRep.wideValue + 3;
+ *indexPtr = endValue + objPtr->internalRep.longValue + 3;
}
return TCL_OK;
}
@@ -3427,9 +3427,9 @@ Tcl_GetIntForIndex(
TclFreeIntRep(objPtr);
if (*indexPtr > -1) {
- objPtr->internalRep.wideValue = *indexPtr;
+ objPtr->internalRep.longValue = *indexPtr;
} else {
- objPtr->internalRep.wideValue = -1;
+ objPtr->internalRep.longValue = -1;
}
objPtr->typePtr = &indexType;
@@ -3482,19 +3482,19 @@ UpdateStringOfIndex(
char buffer[TCL_INTEGER_SPACE + 5];
register int len;
- if (objPtr->internalRep.wideValue < -1) {
+ if (objPtr->internalRep.longValue < -1) {
memcpy(buffer, "end", 4);
len = sizeof("end") - 1;
- if (objPtr->internalRep.wideValue == -2) {
+ if (objPtr->internalRep.longValue == -2) {
buffer[len++] = '+';
buffer[len++] = '1';
buffer[len] = 0;
- } else if (objPtr->internalRep.wideValue != -3) {
+ } else if (objPtr->internalRep.longValue != -3) {
buffer[len++] = '-';
- len += TclFormatInt(buffer+len, (long)-(objPtr->internalRep.wideValue+3));
+ len += TclFormatInt(buffer+len, (long)-(objPtr->internalRep.longValue+3));
}
} else {
- len = TclFormatInt(buffer, objPtr->internalRep.wideValue);
+ len = TclFormatInt(buffer, objPtr->internalRep.longValue);
}
objPtr->bytes = ckalloc((unsigned) len+1);
memcpy(objPtr->bytes, buffer, (unsigned) len+1);
@@ -3510,8 +3510,8 @@ UpdateStringOfIndex(
* and convert it to an internal representation holding the offset.
* If the resulting offset is < "-1" or > "end+1", the index is still
* considered valid but it points to a list element which is not
- * valid. The value stored in internalRep.wideValue will be -1.
- * For values <= "end+1", internalRep.wideValue will be set to offset-3.
+ * valid. The value stored in internalRep.longValue will be -1.
+ * For values <= "end+1", internalRep.longValue will be set to offset-3.
*
* Results:
* Returns TCL_OK if ok, TCL_ERROR if the string was badly formed.
@@ -3581,9 +3581,9 @@ SetIndexFromAny(
TclFreeIntRep(objPtr);
if (offset < 2) {
- objPtr->internalRep.wideValue = ((Tcl_WideInt)offset) - 3;
+ objPtr->internalRep.longValue = offset - 3;
} else {
- objPtr->internalRep.wideValue = -1;
+ objPtr->internalRep.longValue = -1;
}
objPtr->typePtr = &indexType;
diff --git a/tests/obj.test b/tests/obj.test
index ce4559a..a18b17c 100644
--- a/tests/obj.test
+++ b/tests/obj.test
@@ -34,11 +34,11 @@ test obj-2.2 {Tcl_GetObjType and Tcl_ConvertToType} testobj {
test obj-3.1 {Tcl_ConvertToType error} testobj {
list [testdoubleobj set 1 12.34] \
- [catch {testobj convert 1 index} msg] \
+ [catch {testobj convert 1 lindex} msg] \
$msg
} {12.34 1 {bad index "12.34": must be integer?[+-]integer? or end?[+-]integer?}}
test obj-3.2 {Tcl_ConvertToType error, "empty string" object} testobj {
- list [testobj newobj 1] [catch {testobj convert 1 index} msg] $msg
+ list [testobj newobj 1] [catch {testobj convert 1 lindex} msg] $msg
} {{} 1 {bad index "": must be integer?[+-]integer? or end?[+-]integer?}}
test obj-4.1 {Tcl_NewObj and AllocateFreeObjects} testobj {
@@ -534,37 +534,37 @@ test obj-30.1 {Ref counting and object deletion, simple types} testobj {
test obj-31.1 {regenerate string rep of "end"} testobj {
testobj freeallvars
teststringobj set 1 end
- testobj convert 1 index
+ testobj convert 1 lindex
testobj invalidateStringRep 1
} end
test obj-31.2 {regenerate string rep of "end-1"} testobj {
testobj freeallvars
teststringobj set 1 end-0x1
- testobj convert 1 index
+ testobj convert 1 lindex
testobj invalidateStringRep 1
} end-1
test obj-31.3 {regenerate string rep of "end--1"} testobj {
testobj freeallvars
teststringobj set 1 end--0x1
- testobj convert 1 index
+ testobj convert 1 lindex
testobj invalidateStringRep 1
} end+1
test obj-31.4 {regenerate string rep of "end-bigInteger"} testobj {
testobj freeallvars
- teststringobj set 1 end-0x7fffffff
- testobj convert 1 index
+ teststringobj set 1 end-0x7ffffffd
+ testobj convert 1 lindex
testobj invalidateStringRep 1
-} end-2147483647
+} end-2147483645
test obj-31.5 {regenerate string rep of "end--bigInteger"} testobj {
testobj freeallvars
teststringobj set 1 end--0x7fffffff
- testobj convert 1 index
+ testobj convert 1 lindex
testobj invalidateStringRep 1
} -1
test obj-31.6 {regenerate string rep of "end--bigInteger"} {testobj longIs32bit} {
testobj freeallvars
teststringobj set 1 end--0x7fffffff
- testobj convert 1 index
+ testobj convert 1 lindex
testobj invalidateStringRep 1
} -1