Skip to content

Commit

Permalink
bpo-21120: Exclude Python-ast.h, ast.h and asdl.h from the limited API (
Browse files Browse the repository at this point in the history
python#14634)

The PyArena type is not part of the limited API, so these headers
shouldn't be part of it either.
  • Loading branch information
ZackerySpytz authored and markshannon committed Sep 12, 2019
1 parent 6954be8 commit 421a72a
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 4 deletions.
2 changes: 2 additions & 0 deletions Include/Python-ast.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Include/asdl.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#ifndef Py_LIMITED_API
#ifndef Py_ASDL_H
#define Py_ASDL_H

Expand Down Expand Up @@ -44,3 +45,4 @@ asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
#endif

#endif /* !Py_ASDL_H */
#endif /* Py_LIMITED_API */
6 changes: 2 additions & 4 deletions Include/ast.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#ifndef Py_LIMITED_API
#ifndef Py_AST_H
#define Py_AST_H
#ifdef __cplusplus
Expand All @@ -19,8 +20,6 @@ PyAPI_FUNC(mod_ty) PyAST_FromNodeObject(
PyObject *filename,
PyArena *arena);

#ifndef Py_LIMITED_API

/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode(expr_ty);

Expand All @@ -29,9 +28,8 @@ PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode(expr_ty);
Doesn't set exception. */
PyAPI_FUNC(PyObject *) _PyAST_GetDocString(asdl_seq *);

#endif /* !Py_LIMITED_API */

#ifdef __cplusplus
}
#endif
#endif /* !Py_AST_H */
#endif /* !Py_LIMITED_API */
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Exclude Python-ast.h, ast.h and asdl.h from the limited API.
2 changes: 2 additions & 0 deletions Parser/asdl_c.py
Original file line number Diff line number Diff line change
Expand Up @@ -1339,6 +1339,7 @@ def main(srcfile, dump_module=False):
f.write('extern "C" {\n')
f.write('#endif\n')
f.write('\n')
f.write('#ifndef Py_LIMITED_API\n')
f.write('#include "asdl.h"\n')
f.write('\n')
f.write('#undef Yield /* undefine macro conflicting with <winbase.h> */\n')
Expand All @@ -1353,6 +1354,7 @@ def main(srcfile, dump_module=False):
f.write("PyObject* PyAST_mod2obj(mod_ty t);\n")
f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n")
f.write("int PyAST_Check(PyObject* obj);\n")
f.write("#endif /* !Py_LIMITED_API */\n")
f.write('\n')
f.write('#ifdef __cplusplus\n')
f.write('}\n')
Expand Down

0 comments on commit 421a72a

Please sign in to comment.