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>``. explicitly include the header files after ``#include <Python.h>``.
(Contributed by Victor Stinner in :issue:`45434`.) (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 ``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have been moved to
the ``Include/cpython`` directory. Moreover, the ``eval.h`` header file was the ``Include/cpython`` directory. Moreover, the ``eval.h`` header file was
removed. These files must not be included directly, as they are already removed. These files must not be included directly, as they are already

View File

@ -68,7 +68,7 @@
#include "cpython/classobject.h" #include "cpython/classobject.h"
#include "fileobject.h" #include "fileobject.h"
#include "pycapsule.h" #include "pycapsule.h"
#include "code.h" #include "cpython/code.h"
#include "pyframe.h" #include "pyframe.h"
#include "traceback.h" #include "traceback.h"
#include "sliceobject.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 /* Definitions for bytecode */
# error "this header file must not be included directly"
#ifndef Py_LIMITED_API
#ifndef Py_CODE_H
#define Py_CODE_H
#ifdef __cplusplus
extern "C" {
#endif #endif
/* Each instruction in a code object is a fixed-width value, /* 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); void **extra);
PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index, PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
void *extra); 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/bytearrayobject.h \
$(srcdir)/Include/bytesobject.h \ $(srcdir)/Include/bytesobject.h \
$(srcdir)/Include/ceval.h \ $(srcdir)/Include/ceval.h \
$(srcdir)/Include/code.h \
$(srcdir)/Include/codecs.h \ $(srcdir)/Include/codecs.h \
$(srcdir)/Include/compile.h \ $(srcdir)/Include/compile.h \
$(srcdir)/Include/complexobject.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 <stdbool.h>
#include "Python.h" #include "Python.h"
#include "code.h"
#include "opcode.h" #include "opcode.h"
#include "structmember.h" // PyMemberDef #include "structmember.h" // PyMemberDef
#include "pycore_code.h" // _PyCodeConstructor #include "pycore_code.h" // _PyCodeConstructor

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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