diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-03-28 10:57:41 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-03-28 10:57:41 +0000 |
commit | 7253910df83611f0c2aa4f6c5a5718680b9aea60 (patch) | |
tree | bf2f689810676d5395ed2404d679a2e0877d1ff8 /class.c | |
parent | a0cf52c331badeed096e4e913961a38d48b0c6fc (diff) |
1.1b9_05 bug fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r-- | class.c | 22 |
1 files changed, 3 insertions, 19 deletions
@@ -503,28 +503,12 @@ rb_define_alias(klass, name1, name2) } void -rb_define_attr(klass, id, read, write) +rb_define_attr(klass, name, read, write) VALUE klass; - ID id; + char *name; int read, write; { - char *name; - char *buf; - ID attr, attreq, attriv; - - name = rb_id2name(id); - attr = rb_intern(name); - buf = ALLOCA_N(char,strlen(name)+2); - sprintf(buf, "%s=", name); - attreq = rb_intern(buf); - sprintf(buf, "@%s", name); - attriv = rb_intern(buf); - if (read) { - rb_add_method(klass, attr, NEW_IVAR(attriv), 0); - } - if (write) { - rb_add_method(klass, attreq, NEW_ATTRSET(attriv), 0); - } + rb_attr(klass, rb_intern(name), read, write, FALSE); } #include <varargs.h> |