summaryrefslogtreecommitdiffstats
path: root/generic/tclTestObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-01-23 13:15:51 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-01-23 13:15:51 (GMT)
commita3f11a86e9fd3b20745f1fb51639a711fe4e7267 (patch)
tree458dea79cfd9ecb8d415544591755e47b14be41b /generic/tclTestObj.c
parent2c19ef85edcb045fad7576928ee769a940703a4d (diff)
parent05776cbb41104931b2046b39ad4a56724774ae08 (diff)
downloadtcl-a3f11a86e9fd3b20745f1fb51639a711fe4e7267.zip
tcl-a3f11a86e9fd3b20745f1fb51639a711fe4e7267.tar.gz
tcl-a3f11a86e9fd3b20745f1fb51639a711fe4e7267.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclTestObj.c')
-rw-r--r--generic/tclTestObj.c40
1 files changed, 17 insertions, 23 deletions
diff --git a/generic/tclTestObj.c b/generic/tclTestObj.c
index 5d4681c..1e35a75 100644
--- a/generic/tclTestObj.c
+++ b/generic/tclTestObj.c
@@ -164,7 +164,7 @@ TestbignumobjCmd(
};
int index, varIndex;
const char *string;
- mp_int bignumValue, newValue;
+ mp_int bignumValue;
Tcl_Obj **varPtr;
if (objc < 3) {
@@ -237,19 +237,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;
@@ -265,24 +262,20 @@ 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;
- case BIGNUM_ISEVEN: {
- mp_err err;
+ case BIGNUM_ISEVEN:
if (objc != 3) {
Tcl_WrongNumArgs(interp, 2, objv, "varIndex");
return TCL_ERROR;
@@ -294,18 +287,19 @@ TestbignumobjCmd(
&bignumValue) != TCL_OK) {
return TCL_ERROR;
}
- err = mp_mod_2d(&bignumValue, 1, &bignumValue);
- if (err == MP_OKAY && !mp_iszero(&bignumValue)) {
- err = MP_ERR;
- }
+ 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], err == MP_OKAY);
+ Tcl_SetIntObj(varPtr[varIndex], mp_iszero(&bignumValue));
} else {
- SetVarToObj(varPtr, varIndex, Tcl_NewIntObj(err == MP_OKAY));
+ SetVarToObj(varPtr, varIndex, Tcl_NewIntObj(mp_iszero(&bignumValue)));
}
mp_clear(&bignumValue);
- }
- break;
+ break;
case BIGNUM_RADIXSIZE:
if (objc != 3) {