diff options
author | Victor Stinner <vstinner@python.org> | 2023-09-01 07:13:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-01 07:13:07 (GMT) |
commit | 3edcf743e88b4ac4431d4b0f3a66048628cf5c70 (patch) | |
tree | ce31b780be3ef206e009315d2c0d7d5f70d4fe8d /Include/internal | |
parent | c1e2f3b2f70b8a72ea7e1bf792addf62a94ae65d (diff) | |
download | cpython-3edcf743e88b4ac4431d4b0f3a66048628cf5c70.zip cpython-3edcf743e88b4ac4431d4b0f3a66048628cf5c70.tar.gz cpython-3edcf743e88b4ac4431d4b0f3a66048628cf5c70.tar.bz2 |
gh-106320: Remove private _PyLong_Sign() (#108743)
Move the private _PyLong_Sign() and _PyLong_NumBits() functions
to the internal C API (pycore_long.h).
Modules/_testcapi/long.c now uses the internal C API.
Diffstat (limited to 'Include/internal')
-rw-r--r-- | Include/internal/pycore_long.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index c411ac6..3c253ed 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -58,6 +58,23 @@ PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits( Py_ssize_t digit_count, digit *digits); +// _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0. +// v must not be NULL, and must be a normalized long. +// There are no error cases. +// +// Export for '_pickle' shared extension. +PyAPI_FUNC(int) _PyLong_Sign(PyObject *v); + +// _PyLong_NumBits. Return the number of bits needed to represent the +// absolute value of a long. For example, this returns 1 for 1 and -1, 2 +// for 2 and -2, and 2 for 3 and -3. It returns 0 for 0. +// v must not be NULL, and must be a normalized long. +// (size_t)-1 is returned and OverflowError set if the true result doesn't +// fit in a size_t. +// +// Export for 'math' shared extension. +PyAPI_FUNC(size_t) _PyLong_NumBits(PyObject *v); + /* runtime lifecycle */ |