diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-02-12 21:40:34 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-02-12 21:40:34 (GMT) |
commit | 86a45bfad9b8aed72f65893e1096787aa4a58847 (patch) | |
tree | 9f7e322acf5e752c2b16c1341fc191b892c5d954 | |
parent | a2e7a2fdf93ecfdf0f2012b3cf22dfc5e9d37fa8 (diff) | |
download | tcl-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.h | 2 | ||||
-rw-r--r-- | generic/tclTestObj.c | 2 | ||||
-rw-r--r-- | generic/tclUtil.c | 30 | ||||
-rw-r--r-- | tests/obj.test | 20 |
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 |