summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-13 16:32:40 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-13 16:32:40 +0000
commit9c24fed339c77552223d5da339a1e58419bd0b71 (patch)
tree643eb5108a159edcf6791d2de80f4601348129b3 /gc.c
parent04c290820c99e5b0daefa4c55d1a80abcfd17aab (diff)
* encoding.c (rb_cEncoding): new Encoding class.
* encoding.c (rb_to_encoding, rb_to_encoding_index): helper functions. * encoding.c (rb_obj_encoding): return Encoding object now. * gc.c (garbage_collect): mark Encoding objects. * string.c (rb_str_force_encoding): accept Encoding object as well as encoding name. * include/ruby/encoding.h (rb_to_encoding_index, rb_to_encoding): prototypes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 9bbca22588..0e5840e651 100644
--- a/gc.c
+++ b/gc.c
@@ -1456,6 +1456,8 @@ mark_current_machine_context(rb_thread_t *th)
#endif
}
+void rb_gc_mark_encodings(void);
+
static int
garbage_collect(void)
{
@@ -1490,6 +1492,7 @@ garbage_collect(void)
rb_gc_mark_threads();
rb_gc_mark_symbols();
+ rb_gc_mark_encodings();
/* mark protected global variables */
for (list = global_List; list; list = list->next) {