Issue #4910, patch 3/3: rename nb_long to nb_reserved
diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 8355986..a7ba660 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -1057,7 +1057,7 @@
binaryfunc nb_xor;
binaryfunc nb_or;
unaryfunc nb_int;
- unaryfunc nb_long;
+ void *nb_reserved;
unaryfunc nb_float;
binaryfunc nb_inplace_add;
@@ -1088,6 +1088,12 @@
``Py_NotImplemented``, if another error occurred they must return ``NULL``
and set an exception.
+ .. note::
+
+ The :cdata:`nb_reserved` field should always be ``NULL``. It
+ was previously called :cdata:`nb_long`, and was renamed in
+ Python 3.0.1.
+
.. _mapping-structs:
diff --git a/Include/object.h b/Include/object.h
index f3fdbda..b1391ca 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -219,7 +219,7 @@
binaryfunc nb_xor;
binaryfunc nb_or;
unaryfunc nb_int;
- unaryfunc nb_long;
+ void *nb_reserved; /* the slot formerly known as nb_long */
unaryfunc nb_float;
binaryfunc nb_inplace_add;
diff --git a/Misc/NEWS b/Misc/NEWS
index 28cd6b6..69c42d2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
Core and Builtins
-----------------
+- Issue #4910: Rename nb_long slot to nb_reserved, and change its
+ type to (void *).
+
- Issue #4935: The overflow checking code in the expandtabs() method common
to str, bytes and bytearray could be optimized away by the compiler, letting
the interpreter segfault instead of raising an error.
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 702b6b9..98ae2bd 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -2111,7 +2111,7 @@
0, /*nb_xor*/
0, /*nb_or*/
0, /*nb_int*/
- 0, /*nb_long*/
+ 0, /*nb_reserved*/
0, /*nb_float*/
0, /*nb_inplace_add*/
0, /*nb_inplace_subtract*/
diff --git a/Objects/boolobject.c b/Objects/boolobject.c
index 6916b9f..eac31b9 100644
--- a/Objects/boolobject.c
+++ b/Objects/boolobject.c
@@ -109,7 +109,7 @@
bool_xor, /* nb_xor */
bool_or, /* nb_or */
0, /* nb_int */
- 0, /* nb_long */
+ 0, /* nb_reserved */
0, /* nb_float */
0, /* nb_inplace_add */
0, /* nb_inplace_subtract */
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index a7fd7dc..879d71c 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -1060,7 +1060,7 @@
0, /* nb_xor */
0, /* nb_or */
complex_int, /* nb_int */
- 0, /* nb_long */
+ 0, /* nb_reserved */
complex_float, /* nb_float */
0, /* nb_inplace_add */
0, /* nb_inplace_subtract */
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 7292ca5..a3c4e45 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1798,7 +1798,7 @@
0, /*nb_xor*/
0, /*nb_or*/
float_trunc, /*nb_int*/
- 0, /*nb_long*/
+ 0, /*nb_reserved*/
float_float, /*nb_float*/
0, /* nb_inplace_add */
0, /* nb_inplace_subtract */
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 259f7c5..b7ba796 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -3830,7 +3830,7 @@
long_xor, /*nb_xor*/
long_or, /*nb_or*/
long_long, /*nb_int*/
- 0, /*nb_long*/
+ 0, /*nb_reserved*/
long_float, /*nb_float*/
0, /* nb_inplace_add */
0, /* nb_inplace_subtract */
diff --git a/Objects/setobject.c b/Objects/setobject.c
index d3243dd..d5d96ca 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -2082,7 +2082,7 @@
(binaryfunc)set_xor, /*nb_xor*/
(binaryfunc)set_or, /*nb_or*/
0, /*nb_int*/
- 0, /*nb_long*/
+ 0, /*nb_reserved*/
0, /*nb_float*/
0, /*nb_inplace_add*/
(binaryfunc)set_isub, /*nb_inplace_subtract*/
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 8921b5f..b02f108 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3602,7 +3602,6 @@
COPYNUM(nb_xor);
COPYNUM(nb_or);
COPYNUM(nb_int);
- COPYNUM(nb_long);
COPYNUM(nb_float);
COPYNUM(nb_inplace_add);
COPYNUM(nb_inplace_subtract);
@@ -4827,7 +4826,6 @@
SLOT1BIN(slot_nb_or, nb_or, "__or__", "__ror__")
SLOT0(slot_nb_int, "__int__")
-SLOT0(slot_nb_long, "__long__")
SLOT0(slot_nb_float, "__float__")
SLOT1(slot_nb_inplace_add, "__iadd__", PyObject *, "O")
SLOT1(slot_nb_inplace_subtract, "__isub__", PyObject *, "O")
@@ -5443,8 +5441,6 @@
RBINSLOT("__ror__", nb_or, slot_nb_or, "|"),
UNSLOT("__int__", nb_int, slot_nb_int, wrap_unaryfunc,
"int(x)"),
- UNSLOT("__long__", nb_long, slot_nb_long, wrap_unaryfunc,
- "int(x)"),
UNSLOT("__float__", nb_float, slot_nb_float, wrap_unaryfunc,
"float(x)"),
NBSLOT("__index__", nb_index, slot_nb_index, wrap_unaryfunc,
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index 538b21c..b65e5fd 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -594,7 +594,7 @@
proxy_xor, /*nb_xor*/
proxy_or, /*nb_or*/
proxy_int, /*nb_int*/
- 0, /*nb_long*/
+ 0, /*nb_reserved*/
proxy_float, /*nb_float*/
proxy_iadd, /*nb_inplace_add*/
proxy_isub, /*nb_inplace_subtract*/
diff --git a/PC/winreg.c b/PC/winreg.c
index 7316fcd..3abefa8 100644
--- a/PC/winreg.c
+++ b/PC/winreg.c
@@ -451,7 +451,7 @@
PyHKEY_binaryFailureFunc, /* nb_xor */
PyHKEY_binaryFailureFunc, /* nb_or */
PyHKEY_intFunc, /* nb_int */
- 0, /* nb_long */
+ 0, /* nb_reserved */
PyHKEY_unaryFailureFunc, /* nb_float */
};