Import Tcl 8.6.11
This commit is contained in:
@@ -53,7 +53,7 @@ static int TeststringobjCmd(ClientData dummy, Tcl_Interp *interp,
|
||||
|
||||
static void VarPtrDeleteProc(ClientData clientData, Tcl_Interp *interp)
|
||||
{
|
||||
register int i;
|
||||
int i;
|
||||
Tcl_Obj **varPtr = (Tcl_Obj **) clientData;
|
||||
for (i = 0; i < NUMBER_OF_OBJECT_VARS; i++) {
|
||||
if (varPtr[i]) Tcl_DecrRefCount(varPtr[i]);
|
||||
@@ -91,7 +91,7 @@ int
|
||||
TclObjTest_Init(
|
||||
Tcl_Interp *interp)
|
||||
{
|
||||
register int i;
|
||||
int i;
|
||||
/*
|
||||
* An array of Tcl_Obj pointers used in the commands that operate on or get
|
||||
* the values of Tcl object-valued variables. varPtr[i] is the i-th variable's
|
||||
@@ -160,7 +160,7 @@ TestbignumobjCmd(
|
||||
};
|
||||
int index, varIndex;
|
||||
const char *string;
|
||||
mp_int bignumValue, newValue;
|
||||
mp_int bignumValue;
|
||||
Tcl_Obj **varPtr;
|
||||
|
||||
if (objc < 3) {
|
||||
@@ -233,19 +233,16 @@ TestbignumobjCmd(
|
||||
&bignumValue) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (mp_init(&newValue) != MP_OKAY
|
||||
|| (mp_mul_d(&bignumValue, 10, &newValue) != MP_OKAY)) {
|
||||
if (mp_mul_d(&bignumValue, 10, &bignumValue) != MP_OKAY) {
|
||||
mp_clear(&bignumValue);
|
||||
mp_clear(&newValue);
|
||||
Tcl_SetObjResult(interp,
|
||||
Tcl_NewStringObj("error in mp_mul_d", -1));
|
||||
return TCL_ERROR;
|
||||
}
|
||||
mp_clear(&bignumValue);
|
||||
if (!Tcl_IsShared(varPtr[varIndex])) {
|
||||
Tcl_SetBignumObj(varPtr[varIndex], &newValue);
|
||||
Tcl_SetBignumObj(varPtr[varIndex], &bignumValue);
|
||||
} else {
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewBignumObj(&newValue));
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewBignumObj(&bignumValue));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -261,19 +258,16 @@ TestbignumobjCmd(
|
||||
&bignumValue) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (mp_init(&newValue) != MP_OKAY
|
||||
|| (mp_div_d(&bignumValue, 10, &newValue, NULL) != MP_OKAY)) {
|
||||
if (mp_div_d(&bignumValue, 10, &bignumValue, NULL) != MP_OKAY) {
|
||||
mp_clear(&bignumValue);
|
||||
mp_clear(&newValue);
|
||||
Tcl_SetObjResult(interp,
|
||||
Tcl_NewStringObj("error in mp_div_d", -1));
|
||||
return TCL_ERROR;
|
||||
}
|
||||
mp_clear(&bignumValue);
|
||||
if (!Tcl_IsShared(varPtr[varIndex])) {
|
||||
Tcl_SetBignumObj(varPtr[varIndex], &newValue);
|
||||
Tcl_SetBignumObj(varPtr[varIndex], &bignumValue);
|
||||
} else {
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewBignumObj(&newValue));
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewBignumObj(&bignumValue));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -289,10 +283,16 @@ TestbignumobjCmd(
|
||||
&bignumValue) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (mp_mod_2d(&bignumValue, 1, &bignumValue) != MP_OKAY) {
|
||||
mp_clear(&bignumValue);
|
||||
Tcl_SetObjResult(interp,
|
||||
Tcl_NewStringObj("error in mp_mod_2d", -1));
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (!Tcl_IsShared(varPtr[varIndex])) {
|
||||
Tcl_SetIntObj(varPtr[varIndex], !mp_isodd(&bignumValue));
|
||||
Tcl_SetIntObj(varPtr[varIndex], mp_iszero(&bignumValue));
|
||||
} else {
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewIntObj(!mp_isodd(&bignumValue)));
|
||||
SetVarToObj(varPtr, varIndex, Tcl_NewIntObj(mp_iszero(&bignumValue)));
|
||||
}
|
||||
mp_clear(&bignumValue);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user