Skip to content

Commit 83471fd

Browse files
committed
speed up export
1 parent 6ab20f1 commit 83471fd

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Modules/_decimal/_decimal.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2350,7 +2350,16 @@ dec_from_long(decimal_state *state, PyTypeObject *type, PyObject *v,
23502350
PyLong_FreeExport(&export_long);
23512351
}
23522352
else {
2353-
mpd_qset_i64(MPD(dec), export_long.value, ctx, status);
2353+
const int64_t value = export_long.value;
2354+
2355+
if (INT32_MIN <= value && value <= INT32_MAX) {
2356+
_dec_settriple(dec, value < 0 ? MPD_NEG : MPD_POS,
2357+
Py_ABS(value), 0);
2358+
mpd_qfinalize(MPD(dec), ctx, status);
2359+
}
2360+
else {
2361+
mpd_qset_i64(MPD(dec), value, ctx, status);
2362+
}
23542363
}
23552364
return dec;
23562365
}

0 commit comments

Comments
 (0)