@@ -262,7 +262,7 @@ extern PyObject* _PyCode_GetFreevars(PyCodeObject *);
262262extern PyObject * _PyCode_GetCode (PyCodeObject * );
263263
264264/** API for initializing the line number tables. */
265- extern int _PyCode_InitAddressRange (PyCodeObject * co , PyCodeAddressRange * bounds );
265+ PyAPI_FUNC ( int ) _PyCode_InitAddressRange (PyCodeObject * co , PyCodeAddressRange * bounds );
266266
267267/** Out of process API for initializing the location table. */
268268extern void _PyLineTable_InitAddressRange (
@@ -272,7 +272,7 @@ extern void _PyLineTable_InitAddressRange(
272272 PyCodeAddressRange * range );
273273
274274/** API for traversing the line number table. */
275- extern int _PyLineTable_NextAddressRange (PyCodeAddressRange * range );
275+ PyAPI_FUNC ( int ) _PyLineTable_NextAddressRange (PyCodeAddressRange * range );
276276extern int _PyLineTable_PreviousAddressRange (PyCodeAddressRange * range );
277277
278278/** API for executors */
@@ -291,33 +291,34 @@ extern void _PyCode_Clear_Executors(PyCodeObject *code);
291291#define ENABLE_SPECIALIZATION_FT ENABLE_SPECIALIZATION
292292#endif
293293
294- /* Specialization functions */
294+ /* Specialization functions, these are exported only for other re-generated
295+ * interpreters to call */
295296
296- extern void _Py_Specialize_LoadSuperAttr (_PyStackRef global_super , _PyStackRef cls ,
297+ PyAPI_FUNC ( void ) _Py_Specialize_LoadSuperAttr (_PyStackRef global_super , _PyStackRef cls ,
297298 _Py_CODEUNIT * instr , int load_method );
298- extern void _Py_Specialize_LoadAttr (_PyStackRef owner , _Py_CODEUNIT * instr ,
299+ PyAPI_FUNC ( void ) _Py_Specialize_LoadAttr (_PyStackRef owner , _Py_CODEUNIT * instr ,
299300 PyObject * name );
300- extern void _Py_Specialize_StoreAttr (_PyStackRef owner , _Py_CODEUNIT * instr ,
301+ PyAPI_FUNC ( void ) _Py_Specialize_StoreAttr (_PyStackRef owner , _Py_CODEUNIT * instr ,
301302 PyObject * name );
302- extern void _Py_Specialize_LoadGlobal (PyObject * globals , PyObject * builtins ,
303+ PyAPI_FUNC ( void ) _Py_Specialize_LoadGlobal (PyObject * globals , PyObject * builtins ,
303304 _Py_CODEUNIT * instr , PyObject * name );
304- extern void _Py_Specialize_StoreSubscr (_PyStackRef container , _PyStackRef sub ,
305+ PyAPI_FUNC ( void ) _Py_Specialize_StoreSubscr (_PyStackRef container , _PyStackRef sub ,
305306 _Py_CODEUNIT * instr );
306- extern void _Py_Specialize_Call (_PyStackRef callable , _Py_CODEUNIT * instr ,
307+ PyAPI_FUNC ( void ) _Py_Specialize_Call (_PyStackRef callable , _Py_CODEUNIT * instr ,
307308 int nargs );
308- extern void _Py_Specialize_CallKw (_PyStackRef callable , _Py_CODEUNIT * instr ,
309+ PyAPI_FUNC ( void ) _Py_Specialize_CallKw (_PyStackRef callable , _Py_CODEUNIT * instr ,
309310 int nargs );
310- extern void _Py_Specialize_BinaryOp (_PyStackRef lhs , _PyStackRef rhs , _Py_CODEUNIT * instr ,
311+ PyAPI_FUNC ( void ) _Py_Specialize_BinaryOp (_PyStackRef lhs , _PyStackRef rhs , _Py_CODEUNIT * instr ,
311312 int oparg , _PyStackRef * locals );
312- extern void _Py_Specialize_CompareOp (_PyStackRef lhs , _PyStackRef rhs ,
313+ PyAPI_FUNC ( void ) _Py_Specialize_CompareOp (_PyStackRef lhs , _PyStackRef rhs ,
313314 _Py_CODEUNIT * instr , int oparg );
314- extern void _Py_Specialize_UnpackSequence (_PyStackRef seq , _Py_CODEUNIT * instr ,
315+ PyAPI_FUNC ( void ) _Py_Specialize_UnpackSequence (_PyStackRef seq , _Py_CODEUNIT * instr ,
315316 int oparg );
316- extern void _Py_Specialize_ForIter (_PyStackRef iter , _PyStackRef null_or_index , _Py_CODEUNIT * instr , int oparg );
317- extern void _Py_Specialize_Send (_PyStackRef receiver , _Py_CODEUNIT * instr );
318- extern void _Py_Specialize_ToBool (_PyStackRef value , _Py_CODEUNIT * instr );
319- extern void _Py_Specialize_ContainsOp (_PyStackRef value , _Py_CODEUNIT * instr );
320- extern void _Py_GatherStats_GetIter (_PyStackRef iterable );
317+ PyAPI_FUNC ( void ) _Py_Specialize_ForIter (_PyStackRef iter , _PyStackRef null_or_index , _Py_CODEUNIT * instr , int oparg );
318+ PyAPI_FUNC ( void ) _Py_Specialize_Send (_PyStackRef receiver , _Py_CODEUNIT * instr );
319+ PyAPI_FUNC ( void ) _Py_Specialize_ToBool (_PyStackRef value , _Py_CODEUNIT * instr );
320+ PyAPI_FUNC ( void ) _Py_Specialize_ContainsOp (_PyStackRef value , _Py_CODEUNIT * instr );
321+ PyAPI_FUNC ( void ) _Py_GatherStats_GetIter (_PyStackRef iterable );
321322
322323// Utility functions for reading/writing 32/64-bit values in the inline caches.
323324// Great care should be taken to ensure that these functions remain correct and
@@ -512,7 +513,7 @@ typedef struct {
512513
513514#define COMPARISON_NOT_EQUALS (COMPARISON_UNORDERED | COMPARISON_LESS_THAN | COMPARISON_GREATER_THAN)
514515
515- extern int _Py_Instrument (PyCodeObject * co , PyInterpreterState * interp );
516+ PyAPI_FUNC ( int ) _Py_Instrument (PyCodeObject * co , PyInterpreterState * interp );
516517
517518extern _Py_CODEUNIT _Py_GetBaseCodeUnit (PyCodeObject * code , int offset );
518519
0 commit comments