]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120593: Make _PyLong_CompactValue() parameter const again (#122367)
authorVictor Stinner <vstinner@python.org>
Sun, 28 Jul 2024 07:59:07 +0000 (09:59 +0200)
committerGitHub <noreply@github.com>
Sun, 28 Jul 2024 07:59:07 +0000 (09:59 +0200)
Change _PyLong_IsCompact() and _PyLong_CompactValue() parameter type
from 'PyObject*' to 'const PyObject*'. Avoid the Py_TYPE() macro
which does not support const parameter.

Include/cpython/longintrepr.h

index d841c043f37fc4926619fe81cffffd6aa7d457ce..c60ccc463653f9dea6df26e74e9ecd5797a17f6b 100644 (file)
@@ -119,18 +119,18 @@ PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits(
 
 
 static inline int
-_PyLong_IsCompact(PyLongObject* op) {
-    assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS));
+_PyLong_IsCompact(const PyLongObject* op) {
+    assert(PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS));
     return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS);
 }
 
 #define PyUnstable_Long_IsCompact _PyLong_IsCompact
 
 static inline Py_ssize_t
-_PyLong_CompactValue(PyLongObject *op)
+_PyLong_CompactValue(const PyLongObject *op)
 {
     Py_ssize_t sign;
-    assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS));
+    assert(PyType_HasFeature(op->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS));
     assert(PyUnstable_Long_IsCompact(op));
     sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK);
     return sign * (Py_ssize_t)op->long_value.ob_digit[0];