Commit 891ca9e0 authored by Stefan Krah's avatar Stefan Krah

Backport bff16086f03b and bcaaaa00425b.

parent 6edda14b
...@@ -5373,6 +5373,19 @@ class CWhitebox(unittest.TestCase): ...@@ -5373,6 +5373,19 @@ class CWhitebox(unittest.TestCase):
x = (1, (0, 1), "N") x = (1, (0, 1), "N")
self.assertEqual(str(Decimal(x)), '-sNaN1') self.assertEqual(str(Decimal(x)), '-sNaN1')
def test_sizeof(self):
Decimal = C.Decimal
HAVE_CONFIG_64 = (C.MAX_PREC > 425000000)
self.assertGreater(Decimal(0).__sizeof__(), 0)
if HAVE_CONFIG_64:
x = Decimal(10**(19*24)).__sizeof__()
y = Decimal(10**(19*25)).__sizeof__()
self.assertEqual(y, x+8)
else:
x = Decimal(10**(9*24)).__sizeof__()
y = Decimal(10**(9*25)).__sizeof__()
self.assertEqual(y, x+4)
all_tests = [ all_tests = [
CExplicitConstructionTest, PyExplicitConstructionTest, CExplicitConstructionTest, PyExplicitConstructionTest,
......
...@@ -4469,10 +4469,10 @@ _dec_hash(PyDecObject *v) ...@@ -4469,10 +4469,10 @@ _dec_hash(PyDecObject *v)
goto malloc_error; goto malloc_error;
} }
else { else {
PyErr_SetString(PyExc_RuntimeError, PyErr_SetString(PyExc_RuntimeError, /* GCOV_NOT_REACHED */
"dec_hash: internal error: please report"); "dec_hash: internal error: please report"); /* GCOV_NOT_REACHED */
} }
result = -1; result = -1; /* GCOV_NOT_REACHED */
} }
...@@ -5623,7 +5623,7 @@ PyInit__decimal(void) ...@@ -5623,7 +5623,7 @@ PyInit__decimal(void)
} }
if (base == NULL) { if (base == NULL) {
goto error; goto error; /* GCOV_NOT_REACHED */
} }
ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL)); ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL));
...@@ -5655,7 +5655,7 @@ PyInit__decimal(void) ...@@ -5655,7 +5655,7 @@ PyInit__decimal(void)
base = PyTuple_Pack(1, signal_map[0].ex); base = PyTuple_Pack(1, signal_map[0].ex);
} }
if (base == NULL) { if (base == NULL) {
goto error; goto error; /* GCOV_NOT_REACHED */
} }
ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL)); ASSIGN_PTR(cm->ex, PyErr_NewException((char *)cm->fqname, base, NULL));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment