bpo-35134: Remove the Include/code.h header file (GH-32385)

Remove the Include/code.h header file. C extensions should only
include the main <Python.h> header file.

Python.h includes directly Include/cpython/code.h instead.
This commit is contained in:
Victor Stinner 2022-04-07 02:29:52 +02:00 committed by GitHub
parent 5c4d1f6e0e
commit 85addfb9c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 17 additions and 33 deletions

View file

@ -1210,7 +1210,7 @@ Porting to Python 3.11
explicitly include the header files after ``#include <Python.h>``.
(Contributed by Victor Stinner in :issue:`45434`.)
* The non-limited API files ``cellobject.h``, ``classobject.h``, ``context.h``,
* The non-limited API files ``cellobject.h``, ``classobject.h``, ``code.h``, ``context.h``,
``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have been moved to
the ``Include/cpython`` directory. Moreover, the ``eval.h`` header file was
removed. These files must not be included directly, as they are already

View file

@ -68,7 +68,7 @@
#include "cpython/classobject.h"
#include "fileobject.h"
#include "pycapsule.h"
#include "code.h"
#include "cpython/code.h"
#include "pyframe.h"
#include "traceback.h"
#include "sliceobject.h"

View file

@ -1,18 +0,0 @@
/* Definitions for bytecode */
#ifndef Py_CODE_H
#define Py_CODE_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef Py_LIMITED_API
# define Py_CPYTHON_CODE_H
# include "cpython/code.h"
# undef Py_CPYTHON_CODE_H
#endif
#ifdef __cplusplus
}
#endif
#endif /* !Py_CODE_H */

View file

@ -1,5 +1,10 @@
#ifndef Py_CPYTHON_CODE_H
# error "this header file must not be included directly"
/* Definitions for bytecode */
#ifndef Py_LIMITED_API
#ifndef Py_CODE_H
#define Py_CODE_H
#ifdef __cplusplus
extern "C" {
#endif
/* Each instruction in a code object is a fixed-width value,
@ -204,3 +209,9 @@ PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index,
void **extra);
PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
void *extra);
#ifdef __cplusplus
}
#endif
#endif // !Py_CODE_H
#endif // !Py_LIMITED_API

View file

@ -1450,7 +1450,6 @@ PYTHON_HEADERS= \
$(srcdir)/Include/bytearrayobject.h \
$(srcdir)/Include/bytesobject.h \
$(srcdir)/Include/ceval.h \
$(srcdir)/Include/code.h \
$(srcdir)/Include/codecs.h \
$(srcdir)/Include/compile.h \
$(srcdir)/Include/complexobject.h \

View file

@ -0,0 +1,2 @@
Remove the ``Include/code.h`` header file. C extensions should only include
the main ``<Python.h>`` header file. Patch by Victor Stinner.

View file

@ -1,7 +1,6 @@
#include <stdbool.h>
#include "Python.h"
#include "code.h"
#include "opcode.h"
#include "structmember.h" // PyMemberDef
#include "pycore_code.h" // _PyCodeConstructor

View file

@ -129,7 +129,6 @@
<ClInclude Include="..\Include\bytearrayobject.h" />
<ClInclude Include="..\Include\bytesobject.h" />
<ClInclude Include="..\Include\ceval.h" />
<ClInclude Include="..\Include\code.h" />
<ClInclude Include="..\Include\codecs.h" />
<ClInclude Include="..\Include\compile.h" />
<ClInclude Include="..\Include\complexobject.h" />

View file

@ -132,9 +132,6 @@
<ClInclude Include="..\Include\objimpl.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\Include\opcode.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\Include\osdefs.h">
<Filter>Include</Filter>
</ClInclude>

View file

@ -23,7 +23,6 @@
#include "pycore_tuple.h" // _PyTuple_ITEMS()
#include "pycore_emscripten_signal.h" // _Py_CHECK_EMSCRIPTEN_SIGNALS
#include "code.h"
#include "pycore_dict.h"
#include "dictobject.h"
#include "frameobject.h"

View file

@ -12,7 +12,6 @@
#include "pycore_call.h" // _PyObject_CallNoArgs()
#include "pycore_code.h" // _PyCode_New()
#include "pycore_hashtable.h" // _Py_hashtable_t
#include "code.h"
#include "marshal.h" // Py_MARSHAL_VERSION
/*[clinic input]

View file

@ -25,7 +25,6 @@
#include "token.h" // INDENT
#include "errcode.h" // E_EOF
#include "code.h" // PyCodeObject
#include "marshal.h" // PyMarshal_ReadLongFromFile()
#ifdef MS_WINDOWS

View file

@ -31,7 +31,6 @@ Data members:
#include "pycore_structseq.h" // _PyStructSequence_InitType()
#include "pycore_tuple.h" // _PyTuple_FromArray()
#include "code.h"
#include "frameobject.h" // PyFrame_GetBack()
#include "pydtrace.h"
#include "osdefs.h" // DELIM

View file

@ -3,7 +3,6 @@
#include "Python.h"
#include "code.h" // PyCode_Addr2Line etc
#include "frameobject.h" // PyFrame_GetBack()
#include "pycore_ast.h" // asdl_seq_*
#include "pycore_call.h" // _PyObject_CallMethodFormat()