Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ExeBy/smexe_ro.../usr/include/python3....
File: code.h
/* Definitions for bytecode */
[0] Fix | Delete
[1] Fix | Delete
#ifndef Py_LIMITED_API
[2] Fix | Delete
#ifndef Py_CODE_H
[3] Fix | Delete
#define Py_CODE_H
[4] Fix | Delete
#ifdef __cplusplus
[5] Fix | Delete
extern "C" {
[6] Fix | Delete
#endif
[7] Fix | Delete
[8] Fix | Delete
typedef uint16_t _Py_CODEUNIT;
[9] Fix | Delete
[10] Fix | Delete
#ifdef WORDS_BIGENDIAN
[11] Fix | Delete
# define _Py_OPCODE(word) ((word) >> 8)
[12] Fix | Delete
# define _Py_OPARG(word) ((word) & 255)
[13] Fix | Delete
#else
[14] Fix | Delete
# define _Py_OPCODE(word) ((word) & 255)
[15] Fix | Delete
# define _Py_OPARG(word) ((word) >> 8)
[16] Fix | Delete
#endif
[17] Fix | Delete
[18] Fix | Delete
/* Bytecode object */
[19] Fix | Delete
typedef struct {
[20] Fix | Delete
PyObject_HEAD
[21] Fix | Delete
int co_argcount; /* #arguments, except *args */
[22] Fix | Delete
int co_kwonlyargcount; /* #keyword only arguments */
[23] Fix | Delete
int co_nlocals; /* #local variables */
[24] Fix | Delete
int co_stacksize; /* #entries needed for evaluation stack */
[25] Fix | Delete
int co_flags; /* CO_..., see below */
[26] Fix | Delete
int co_firstlineno; /* first source line number */
[27] Fix | Delete
PyObject *co_code; /* instruction opcodes */
[28] Fix | Delete
PyObject *co_consts; /* list (constants used) */
[29] Fix | Delete
PyObject *co_names; /* list of strings (names used) */
[30] Fix | Delete
PyObject *co_varnames; /* tuple of strings (local variable names) */
[31] Fix | Delete
PyObject *co_freevars; /* tuple of strings (free variable names) */
[32] Fix | Delete
PyObject *co_cellvars; /* tuple of strings (cell variable names) */
[33] Fix | Delete
/* The rest aren't used in either hash or comparisons, except for co_name,
[34] Fix | Delete
used in both. This is done to preserve the name and line number
[35] Fix | Delete
for tracebacks and debuggers; otherwise, constant de-duplication
[36] Fix | Delete
would collapse identical functions/lambdas defined on different lines.
[37] Fix | Delete
*/
[38] Fix | Delete
unsigned char *co_cell2arg; /* Maps cell vars which are arguments. */
[39] Fix | Delete
PyObject *co_filename; /* unicode (where it was loaded from) */
[40] Fix | Delete
PyObject *co_name; /* unicode (name, for reference) */
[41] Fix | Delete
PyObject *co_lnotab; /* string (encoding addr<->lineno mapping) See
[42] Fix | Delete
Objects/lnotab_notes.txt for details. */
[43] Fix | Delete
void *co_zombieframe; /* for optimization only (see frameobject.c) */
[44] Fix | Delete
PyObject *co_weakreflist; /* to support weakrefs to code objects */
[45] Fix | Delete
/* Scratch space for extra data relating to the code object.
[46] Fix | Delete
Type is a void* to keep the format private in codeobject.c to force
[47] Fix | Delete
people to go through the proper APIs. */
[48] Fix | Delete
void *co_extra;
[49] Fix | Delete
} PyCodeObject;
[50] Fix | Delete
[51] Fix | Delete
/* Masks for co_flags above */
[52] Fix | Delete
#define CO_OPTIMIZED 0x0001
[53] Fix | Delete
#define CO_NEWLOCALS 0x0002
[54] Fix | Delete
#define CO_VARARGS 0x0004
[55] Fix | Delete
#define CO_VARKEYWORDS 0x0008
[56] Fix | Delete
#define CO_NESTED 0x0010
[57] Fix | Delete
#define CO_GENERATOR 0x0020
[58] Fix | Delete
/* The CO_NOFREE flag is set if there are no free or cell variables.
[59] Fix | Delete
This information is redundant, but it allows a single flag test
[60] Fix | Delete
to determine whether there is any extra work to be done when the
[61] Fix | Delete
call frame it setup.
[62] Fix | Delete
*/
[63] Fix | Delete
#define CO_NOFREE 0x0040
[64] Fix | Delete
[65] Fix | Delete
/* The CO_COROUTINE flag is set for coroutine functions (defined with
[66] Fix | Delete
``async def`` keywords) */
[67] Fix | Delete
#define CO_COROUTINE 0x0080
[68] Fix | Delete
#define CO_ITERABLE_COROUTINE 0x0100
[69] Fix | Delete
#define CO_ASYNC_GENERATOR 0x0200
[70] Fix | Delete
[71] Fix | Delete
/* These are no longer used. */
[72] Fix | Delete
#if 0
[73] Fix | Delete
#define CO_GENERATOR_ALLOWED 0x1000
[74] Fix | Delete
#endif
[75] Fix | Delete
#define CO_FUTURE_DIVISION 0x2000
[76] Fix | Delete
#define CO_FUTURE_ABSOLUTE_IMPORT 0x4000 /* do absolute imports by default */
[77] Fix | Delete
#define CO_FUTURE_WITH_STATEMENT 0x8000
[78] Fix | Delete
#define CO_FUTURE_PRINT_FUNCTION 0x10000
[79] Fix | Delete
#define CO_FUTURE_UNICODE_LITERALS 0x20000
[80] Fix | Delete
[81] Fix | Delete
#define CO_FUTURE_BARRY_AS_BDFL 0x40000
[82] Fix | Delete
#define CO_FUTURE_GENERATOR_STOP 0x80000
[83] Fix | Delete
[84] Fix | Delete
/* This value is found in the co_cell2arg array when the associated cell
[85] Fix | Delete
variable does not correspond to an argument. The maximum number of
[86] Fix | Delete
arguments is 255 (indexed up to 254), so 255 work as a special flag.*/
[87] Fix | Delete
#define CO_CELL_NOT_AN_ARG 255
[88] Fix | Delete
[89] Fix | Delete
/* This should be defined if a future statement modifies the syntax.
[90] Fix | Delete
For example, when a keyword is added.
[91] Fix | Delete
*/
[92] Fix | Delete
#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
[93] Fix | Delete
[94] Fix | Delete
#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
[95] Fix | Delete
[96] Fix | Delete
PyAPI_DATA(PyTypeObject) PyCode_Type;
[97] Fix | Delete
[98] Fix | Delete
#define PyCode_Check(op) (Py_TYPE(op) == &PyCode_Type)
[99] Fix | Delete
#define PyCode_GetNumFree(op) (PyTuple_GET_SIZE((op)->co_freevars))
[100] Fix | Delete
[101] Fix | Delete
/* Public interface */
[102] Fix | Delete
PyAPI_FUNC(PyCodeObject *) PyCode_New(
[103] Fix | Delete
int, int, int, int, int, PyObject *, PyObject *,
[104] Fix | Delete
PyObject *, PyObject *, PyObject *, PyObject *,
[105] Fix | Delete
PyObject *, PyObject *, int, PyObject *);
[106] Fix | Delete
/* same as struct above */
[107] Fix | Delete
[108] Fix | Delete
/* Creates a new empty code object with the specified source location. */
[109] Fix | Delete
PyAPI_FUNC(PyCodeObject *)
[110] Fix | Delete
PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno);
[111] Fix | Delete
[112] Fix | Delete
/* Return the line number associated with the specified bytecode index
[113] Fix | Delete
in this code object. If you just need the line number of a frame,
[114] Fix | Delete
use PyFrame_GetLineNumber() instead. */
[115] Fix | Delete
PyAPI_FUNC(int) PyCode_Addr2Line(PyCodeObject *, int);
[116] Fix | Delete
[117] Fix | Delete
/* for internal use only */
[118] Fix | Delete
typedef struct _addr_pair {
[119] Fix | Delete
int ap_lower;
[120] Fix | Delete
int ap_upper;
[121] Fix | Delete
} PyAddrPair;
[122] Fix | Delete
[123] Fix | Delete
#ifndef Py_LIMITED_API
[124] Fix | Delete
/* Update *bounds to describe the first and one-past-the-last instructions in the
[125] Fix | Delete
same line as lasti. Return the number of that line.
[126] Fix | Delete
*/
[127] Fix | Delete
PyAPI_FUNC(int) _PyCode_CheckLineNumber(PyCodeObject* co,
[128] Fix | Delete
int lasti, PyAddrPair *bounds);
[129] Fix | Delete
[130] Fix | Delete
/* Create a comparable key used to compare constants taking in account the
[131] Fix | Delete
* object type. It is used to make sure types are not coerced (e.g., float and
[132] Fix | Delete
* complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms
[133] Fix | Delete
*
[134] Fix | Delete
* Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)
[135] Fix | Delete
* depending on the type and the value. The type is the first item to not
[136] Fix | Delete
* compare bytes and str which can raise a BytesWarning exception. */
[137] Fix | Delete
PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj);
[138] Fix | Delete
#endif
[139] Fix | Delete
[140] Fix | Delete
PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts,
[141] Fix | Delete
PyObject *names, PyObject *lnotab);
[142] Fix | Delete
[143] Fix | Delete
[144] Fix | Delete
#ifndef Py_LIMITED_API
[145] Fix | Delete
PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index,
[146] Fix | Delete
void **extra);
[147] Fix | Delete
PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
[148] Fix | Delete
void *extra);
[149] Fix | Delete
#endif
[150] Fix | Delete
[151] Fix | Delete
#ifdef __cplusplus
[152] Fix | Delete
}
[153] Fix | Delete
#endif
[154] Fix | Delete
#endif /* !Py_CODE_H */
[155] Fix | Delete
#endif /* Py_LIMITED_API */
[156] Fix | Delete
[157] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function