mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
Access checks now work, at least for instance data (not for methods
yet). The class is now passed to eval_code and stored in the current frame. It is also stored in instance method objects. An "unbound" instance method is now returned when a function is retrieved through "classname.funcname", which when called passes the class to eval_code.
This commit is contained in:
parent
25831652fd
commit
81daa32c15
14 changed files with 655 additions and 150 deletions
|
@ -36,6 +36,7 @@ typedef struct _frame {
|
|||
codeobject *f_code; /* code segment */
|
||||
object *f_globals; /* global symbol table (dictobject) */
|
||||
object *f_locals; /* local symbol table (dictobject) */
|
||||
object *f_class; /* class context (classobject or NULL) */
|
||||
object *f_fastlocals; /* fast local variables (listobject) */
|
||||
object *f_localmap; /* local variable names (dictobject) */
|
||||
object **f_valuestack; /* malloc'ed array */
|
||||
|
@ -55,7 +56,7 @@ extern typeobject Frametype;
|
|||
#define is_frameobject(op) ((op)->ob_type == &Frametype)
|
||||
|
||||
frameobject * newframeobject PROTO(
|
||||
(frameobject *, codeobject *, object *, object *, int, int));
|
||||
(frameobject *, codeobject *, object *, object *, object *, int, int));
|
||||
|
||||
|
||||
/* The rest of the interface is specific for frame objects */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue