I've moved the remains of PyInt_ to the longobject.h header file and removed the inclusing of intobject.h from Python.h. Now the intobject.h exists only to provide some aliases for porters from Python 2.x.
This commit is contained in:
parent
2137b6aa99
commit
f78b1c6573
|
@ -387,6 +387,8 @@ changes to your code:
|
|||
|
||||
* Everything is all in the details!
|
||||
|
||||
* Developers can include intobject.h after Python.h for some PyInt_ aliases.
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
|
||||
|
|
|
@ -66,7 +66,6 @@
|
|||
|
||||
#include "bytesobject.h"
|
||||
#include "unicodeobject.h"
|
||||
#include "intobject.h"
|
||||
#include "longobject.h"
|
||||
#include "longintrepr.h"
|
||||
#include "boolobject.h"
|
||||
|
|
|
@ -1,18 +1,9 @@
|
|||
/* Integer object interface
|
||||
|
||||
/* Integer object interface */
|
||||
|
||||
/*
|
||||
PyIntObject represents a (long) integer. This is an immutable object;
|
||||
an integer cannot change its value after creation.
|
||||
|
||||
There are functions to create new integer objects, to test an object
|
||||
for integer-ness, and to get the integer value. The latter functions
|
||||
returns -1 and sets errno to EBADF if the object is not an PyIntObject.
|
||||
None of the functions should be applied to nil objects.
|
||||
|
||||
The type PyIntObject is (unfortunately) exposed here so we can declare
|
||||
_Py_TrueStruct and _Py_ZeroStruct in boolobject.h; don't use this.
|
||||
*/
|
||||
This header files exists to make porting code to Python 3.0 easier. It
|
||||
defines aliases from PyInt_* to PyLong_*. Only PyInt_GetMax() and
|
||||
PyInt_CheckExact() remain in longobject.h.
|
||||
*/
|
||||
|
||||
#ifndef Py_INTOBJECT_H
|
||||
#define Py_INTOBJECT_H
|
||||
|
@ -20,38 +11,19 @@ _Py_TrueStruct and _Py_ZeroStruct in boolobject.h; don't use this.
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
long ob_ival;
|
||||
} PyIntObject;
|
||||
#warning "DeprecationWarning: intobject.h is going to be removed in 3.1"
|
||||
|
||||
PyAPI_DATA(PyTypeObject) PyInt_Type;
|
||||
*/
|
||||
|
||||
#define PyInt_CheckExact(op) (PyLong_CheckExact(op) && _PyLong_FitsInLong(op))
|
||||
|
||||
#if 0
|
||||
# define PyInt_Check(op) PyLong_Check(op)
|
||||
# define PyInt_FromString PyLong_FromString
|
||||
# define PyInt_FromUnicode PyLong_FromUnicode
|
||||
# define PyInt_FromLong PyLong_FromLong
|
||||
# define PyInt_FromSize_t PyLong_FromSize_t
|
||||
# define PyInt_FromSsize_t PyLong_FromSsize_t
|
||||
# define PyInt_AsLong PyLong_AsLong
|
||||
# define PyInt_AsSsize_t PyLong_AsSsize_t
|
||||
# define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
|
||||
# define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
|
||||
# define PyInt_AS_LONG PyLong_AS_LONG
|
||||
#endif
|
||||
|
||||
PyAPI_FUNC(long) PyInt_GetMax(void);
|
||||
|
||||
/* These aren't really part of the Int object, but they're handy; the protos
|
||||
* are necessary for systems that need the magic of PyAPI_FUNC.
|
||||
*/
|
||||
PyAPI_FUNC(unsigned long) PyOS_strtoul(char *, char **, int);
|
||||
PyAPI_FUNC(long) PyOS_strtol(char *, char **, int);
|
||||
#define PyInt_Check(op) PyLong_Check(op)
|
||||
#define PyInt_FromString PyLong_FromString
|
||||
#define PyInt_FromUnicode PyLong_FromUnicode
|
||||
#define PyInt_FromLong PyLong_FromLong
|
||||
#define PyInt_FromSize_t PyLong_FromSize_t
|
||||
#define PyInt_FromSsize_t PyLong_FromSsize_t
|
||||
#define PyInt_AsLong PyLong_AsLong
|
||||
#define PyInt_AsSsize_t PyLong_AsSsize_t
|
||||
#define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
|
||||
#define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
|
||||
#define PyInt_AS_LONG PyLong_AS_LONG
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ PyAPI_DATA(PyTypeObject) PyLong_Type;
|
|||
#define PyLong_Check(op) \
|
||||
PyType_FastSubclass(Py_Type(op), Py_TPFLAGS_LONG_SUBCLASS)
|
||||
#define PyLong_CheckExact(op) (Py_Type(op) == &PyLong_Type)
|
||||
#define PyInt_CheckExact(op) (PyLong_CheckExact(op) && _PyLong_FitsInLong(op))
|
||||
|
||||
PyAPI_FUNC(PyObject *) PyLong_FromLong(long);
|
||||
PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long);
|
||||
|
@ -30,6 +31,8 @@ PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *);
|
|||
cleanup to keep the extra information. [CH] */
|
||||
#define PyLong_AS_LONG(op) PyLong_AsLong(op)
|
||||
|
||||
PyAPI_FUNC(long) PyInt_GetMax(void);
|
||||
|
||||
/* Used by socketmodule.c */
|
||||
#if SIZEOF_SOCKET_T <= SIZEOF_LONG
|
||||
#define PyLong_FromSocket_t(fd) PyLong_FromLong((SOCKET_T)(fd))
|
||||
|
@ -127,6 +130,12 @@ PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
|
|||
appending a base prefix of 0[box] if base is 2, 8 or 16. */
|
||||
PyAPI_FUNC(PyObject *) _PyLong_Format(PyObject *aa, int base);
|
||||
|
||||
/* These aren't really part of the long object, but they're handy. The
|
||||
functions are in Python/mystrtoul.c.
|
||||
*/
|
||||
PyAPI_FUNC(unsigned long) PyOS_strtoul(char *, char **, int);
|
||||
PyAPI_FUNC(long) PyOS_strtol(char *, char **, int);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -546,6 +546,7 @@ PYTHON_HEADERS= \
|
|||
Include/asdl.h \
|
||||
Include/abstract.h \
|
||||
Include/boolobject.h \
|
||||
Include/bytes_methods.h \
|
||||
Include/bytesobject.h \
|
||||
Include/ceval.h \
|
||||
Include/classobject.h \
|
||||
|
@ -563,10 +564,10 @@ PYTHON_HEADERS= \
|
|||
Include/formatter_unicode.h \
|
||||
Include/funcobject.h \
|
||||
Include/import.h \
|
||||
Include/intobject.h \
|
||||
Include/intrcheck.h \
|
||||
Include/iterobject.h \
|
||||
Include/listobject.h \
|
||||
Include/longintrepr.h \
|
||||
Include/longobject.h \
|
||||
Include/memoryobject.h \
|
||||
Include/methodobject.h \
|
||||
|
|
|
@ -50,6 +50,10 @@ Core and Builtins
|
|||
removed and im_func + im_self are renamed to __func__ and __self__. The
|
||||
factory PyMethod_New takes only func and instance as argument.
|
||||
|
||||
- intobject.h is no longer included by Python.h. The remains were moved
|
||||
to longobject.h. It still exists to define several aliases from PyInt_
|
||||
to PyLong_ functions.
|
||||
|
||||
|
||||
Extension Modules
|
||||
-----------------
|
||||
|
|
Loading…
Reference in New Issue