summaryrefslogtreecommitdiff
path: root/method.h
diff options
context:
space:
mode:
authorwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-22 11:44:01 +0000
committerwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-22 11:44:01 +0000
commitc46f71399ae54967e7247ac4df0c26adeddbffd6 (patch)
tree829ebc2a778a5306f6c403029fe5b04713fd480c /method.h
parent5d8f69503299ef719c5523546cf2745de136cea9 (diff)
* 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.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/method.h b/method.h
index 177d7bc677..c67667d3d8 100644
--- a/method.h
+++ b/method.h
@@ -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,