diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | encoding.c | 13 |
2 files changed, 6 insertions, 12 deletions
@@ -1,3 +1,8 @@ +Fri Jan 18 00:23:31 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * encoding.c (enc_free): removed since rb_encoding may be used while + cleanup. + Fri Jan 18 00:17:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * enc/euc_cn.c: split from enc/euc_kr.c. diff --git a/encoding.c b/encoding.c index 846b316945..1453b267b2 100644 --- a/encoding.c +++ b/encoding.c @@ -70,21 +70,10 @@ enc_mark(void *ptr) { } -static void -enc_free(void *ptr) -{ - rb_encoding *enc = ptr; - struct rb_encoding_entry *ent = &enc_table.list[enc->ruby_encoding_index]; - xfree((char *)ent->name); - ent->name = 0; - ent->enc = 0; - xfree(ptr); -} - static VALUE enc_new(rb_encoding *encoding) { - VALUE enc = Data_Wrap_Struct(rb_cEncoding, enc_mark, enc_free, encoding); + VALUE enc = Data_Wrap_Struct(rb_cEncoding, enc_mark, -1, encoding); encoding->auxiliary_data = (void *)enc; return enc; } |