]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42161: Remove private _PyLong_Zero and _PyLong_One (GH-23003)
authorVictor Stinner <vstinner@python.org>
Tue, 27 Oct 2020 20:34:33 +0000 (21:34 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Oct 2020 20:34:33 +0000 (21:34 +0100)
Use PyLong_FromLong(0) and PyLong_FromLong(1) of the public C API
instead. For Python internals, _PyLong_GetZero() and _PyLong_GetOne()
of pycore_long.h can be used.

Include/longobject.h
Objects/longobject.c
Tools/c-analyzer/TODO

index 06e3e2490401e44c58b4632db8fe547c797631bf..e2301d7abfcccf35217cfbb25b09fb1ec873c57e 100644 (file)
@@ -210,9 +210,6 @@ PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *);
 #endif /* !Py_LIMITED_API */
 
 #ifndef Py_LIMITED_API
-PyAPI_DATA(PyObject *) _PyLong_Zero;
-PyAPI_DATA(PyObject *) _PyLong_One;
-
 PyAPI_FUNC(PyObject *) _PyLong_Rshift(PyObject *, size_t);
 PyAPI_FUNC(PyObject *) _PyLong_Lshift(PyObject *, size_t);
 #endif
index ae63eba134504043f67cfc4bcc7541d8868028a1..e0d6410fe6818a323e8dc50c08a1cb8c410c48af 100644 (file)
@@ -32,9 +32,6 @@ _Py_IDENTIFIER(big);
              (Py_SIZE(x) == 0 ? (sdigit)0 :                             \
               (sdigit)(x)->ob_digit[0]))
 
-PyObject *_PyLong_Zero = NULL;
-PyObject *_PyLong_One = NULL;
-
 #define IS_SMALL_INT(ival) (-NSMALLNEGINTS <= (ival) && (ival) < NSMALLPOSINTS)
 #define IS_SMALL_UINT(ival) ((ival) < NSMALLPOSINTS)
 
@@ -5723,16 +5720,6 @@ _PyLong_Init(PyThreadState *tstate)
     }
 
     if (_Py_IsMainInterpreter(tstate)) {
-        _PyLong_Zero = PyLong_FromLong(0);
-        if (_PyLong_Zero == NULL) {
-            return 0;
-        }
-
-        _PyLong_One = PyLong_FromLong(1);
-        if (_PyLong_One == NULL) {
-            return 0;
-        }
-
         /* initialize int_info */
         if (Int_InfoType.tp_name == NULL) {
             if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) {
@@ -5747,11 +5734,6 @@ _PyLong_Init(PyThreadState *tstate)
 void
 _PyLong_Fini(PyThreadState *tstate)
 {
-    if (_Py_IsMainInterpreter(tstate)) {
-        Py_CLEAR(_PyLong_One);
-        Py_CLEAR(_PyLong_Zero);
-    }
-
     for (Py_ssize_t i = 0; i < NSMALLNEGINTS + NSMALLPOSINTS; i++) {
         Py_CLEAR(tstate->interp->small_ints[i]);
     }
index f5c1a92f856959c60c17b189d539e76935b6124f..1fd8052268be07d40b1bbab90f8e230cbadc6708 100644 (file)
@@ -154,8 +154,6 @@ Objects/bytesobject.c:nullstring                                 static PyBytesO
 Objects/codeobject.c:PyCode_NewEmpty():nulltuple                 static PyObject *nulltuple
 Objects/dictobject.c:empty_values                                static PyObject *empty_values[1]
 Objects/listobject.c:indexerr                                    static PyObject *indexerr
-Objects/longobject.c:_PyLong_One                                 PyObject *_PyLong_One
-Objects/longobject.c:_PyLong_Zero                                PyObject *_PyLong_Zero
 Objects/longobject.c:small_ints                                  static PyLongObject small_ints[NSMALLNEGINTS + NSMALLPOSINTS]
 Objects/setobject.c:emptyfrozenset                               static PyObject *emptyfrozenset
 Python/context.c:_token_missing                                  static PyObject *_token_missing