diff options
author | wanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-03-22 11:44:01 +0000 |
---|---|---|
committer | wanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-03-22 11:44:01 +0000 |
commit | c46f71399ae54967e7247ac4df0c26adeddbffd6 (patch) | |
tree | 829ebc2a778a5306f6c403029fe5b04713fd480c /method.h | |
parent | 5d8f69503299ef719c5523546cf2745de136cea9 (diff) | |
download | ruby-c46f71399ae54967e7247ac4df0c26adeddbffd6.tar.gz |
* proc.c (rb_method_location): return attr's location if it is setup.
[Feature #2084]
* NEWS: follow above.
* vm_method.c (rb_add_method): save attr's location.
* gc.c (mark_method_entry): mark attr's location.
* method.h (rb_method_definition_t): add member to save attr's location.
* vm_eval.c (vm_call0): follow above.
* vm_insnhelper.c (vm_call_method): ditto.
* vm_method.c (rb_method_definition_eq): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'method.h')
-rw-r--r-- | method.h | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -49,6 +49,11 @@ typedef struct rb_method_cfunc_struct { int argc; } rb_method_cfunc_t; +typedef struct rb_method_attr_struct { + ID id; + VALUE location; +} rb_method_attr_t; + typedef struct rb_iseq_struct rb_iseq_t; typedef struct rb_method_definition_struct { @@ -57,7 +62,7 @@ typedef struct rb_method_definition_struct { union { rb_iseq_t *iseq; /* should be mark */ rb_method_cfunc_t cfunc; - ID attr_id; + rb_method_attr_t attr; VALUE proc; /* should be mark */ enum method_optimized_type { OPTIMIZED_METHOD_TYPE_SEND, |