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
#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"
+++ /dev/null
-/* 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 */
-#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,
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
$(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 \
--- /dev/null
+Remove the ``Include/code.h`` header file. C extensions should only include
+the main ``<Python.h>`` header file. Patch by Victor Stinner.
#include <stdbool.h>
#include "Python.h"
-#include "code.h"
#include "opcode.h"
#include "structmember.h" // PyMemberDef
#include "pycore_code.h" // _PyCodeConstructor
<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" />
<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>
#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"
#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]
#include "token.h" // INDENT
#include "errcode.h" // E_EOF
-#include "code.h" // PyCodeObject
#include "marshal.h" // PyMarshal_ReadLongFromFile()
#ifdef MS_WINDOWS
#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
#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()