@@ -177,12 +177,14 @@ typedef struct {
177
177
*/
178
178
179
179
// Note that these all fit within a byte, as do combinations.
180
- // Later, we will use the smaller numbers to differentiate the different
181
- // kinds of locals (e.g. pos-only arg, varkwargs, local-only).
182
- #define CO_FAST_HIDDEN 0x10
183
- #define CO_FAST_LOCAL 0x20
184
- #define CO_FAST_CELL 0x40
185
- #define CO_FAST_FREE 0x80
180
+ #define CO_FAST_ARG_POS (0x02) // pos-only, pos-or-kw, varargs
181
+ #define CO_FAST_ARG_KW (0x04) // kw-only, pos-or-kw, varkwargs
182
+ #define CO_FAST_ARG_VAR (0x08) // varargs, varkwargs
183
+ #define CO_FAST_ARG (CO_FAST_ARG_POS | CO_FAST_ARG_KW | CO_FAST_ARG_VAR)
184
+ #define CO_FAST_HIDDEN (0x10)
185
+ #define CO_FAST_LOCAL (0x20)
186
+ #define CO_FAST_CELL (0x40)
187
+ #define CO_FAST_FREE (0x80)
186
188
187
189
typedef unsigned char _PyLocals_Kind ;
188
190
@@ -315,6 +317,7 @@ extern void _Py_Specialize_ForIter(_PyStackRef iter, _Py_CODEUNIT *instr, int op
315
317
extern void _Py_Specialize_Send (_PyStackRef receiver , _Py_CODEUNIT * instr );
316
318
extern void _Py_Specialize_ToBool (_PyStackRef value , _Py_CODEUNIT * instr );
317
319
extern void _Py_Specialize_ContainsOp (_PyStackRef value , _Py_CODEUNIT * instr );
320
+ extern void _Py_GatherStats_GetIter (_PyStackRef iterable );
318
321
319
322
// Utility functions for reading/writing 32/64-bit values in the inline caches.
320
323
// Great care should be taken to ensure that these functions remain correct and
@@ -561,6 +564,10 @@ extern void _Py_ClearTLBCIndex(_PyThreadStateImpl *tstate);
561
564
extern int _Py_ClearUnusedTLBC (PyInterpreterState * interp );
562
565
#endif
563
566
567
+
568
+ PyAPI_FUNC (int ) _PyCode_ReturnsOnlyNone (PyCodeObject * );
569
+
570
+
564
571
#ifdef __cplusplus
565
572
}
566
573
#endif
0 commit comments