Don't store the key-value pair array in an instance variable.
[ruby-vorbistagger.git] / ext / comments.c
index bc7d844d0d10cf9829f7dd99f3fab4a4ac9912b2..29b03371da548a9c02cff71d2960bf04b6233249 100644 (file)
@@ -64,8 +64,6 @@ comments_init (VALUE self, vcedit_state *state)
 
                rb_ary_store (o->items, i, pair);
        }
-
-       rb_iv_set (self, "@items", o->items);
 }
 
 void
@@ -355,7 +353,7 @@ c_aset (VALUE self, VALUE key, VALUE value)
                }
        }
 
-       tmp = rb_ary_new3 (2, key, value);
+       tmp = rb_ary_new3 (2, rb_str_dup_frozen (key), value);
        OBJ_FREEZE (tmp);
 
        rb_ary_push (o->items, tmp);
@@ -551,6 +549,9 @@ Init_Comments (VALUE mVorbis)
 
        rb_define_alias (c, "size", "length");
        rb_define_alias (c, "each_pair", "each");
+       rb_define_alias (c, "key?", "has_key?");
+       rb_define_alias (c, "include?", "has_key?");
+       rb_define_alias (c, "member?", "has_key?");
 
        id_casecmp = rb_intern ("casecmp");
        id_replace = rb_intern ("replace");