diff --git a/ChangeLog b/ChangeLog index 499647dd34..9d8fc007f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 26 18:03:52 2009 Nobuyoshi Nakada + + * eval.c (Init_Cont): separated from Init_Thread() since + rb_provide() must be after Init_Array(). + Mon Jan 26 16:00:40 2009 Nobuyoshi Nakada * array.c (rb_ary_aset): fixed arguments evaluation order. diff --git a/eval.c b/eval.c index 58f7b9f3d0..7aaf6536a6 100644 --- a/eval.c +++ b/eval.c @@ -13390,6 +13390,19 @@ rb_cont_call(argc, argv, cont) return Qnil; } +void +Init_Cont() +{ + rb_cCont = rb_define_class("Continuation", rb_cObject); + rb_undef_alloc_func(rb_cCont); + rb_undef_method(CLASS_OF(rb_cCont), "new"); + rb_define_method(rb_cCont, "call", rb_cont_call, -1); + rb_define_method(rb_cCont, "[]", rb_cont_call, -1); + rb_define_global_function("callcc", rb_callcc, 0); + rb_global_variable(&cont_protect); + rb_provide("continuation.so"); +} + struct thgroup { int enclosed; VALUE group; @@ -13738,15 +13751,6 @@ Init_Thread() rb_define_method(rb_cThread, "inspect", rb_thread_inspect, 0); - rb_cCont = rb_define_class("Continuation", rb_cObject); - rb_undef_alloc_func(rb_cCont); - rb_undef_method(CLASS_OF(rb_cCont), "new"); - rb_define_method(rb_cCont, "call", rb_cont_call, -1); - rb_define_method(rb_cCont, "[]", rb_cont_call, -1); - rb_define_global_function("callcc", rb_callcc, 0); - rb_global_variable(&cont_protect); - rb_provide("continuation.so"); - cThGroup = rb_define_class("ThreadGroup", rb_cObject); rb_define_alloc_func(cThGroup, thgroup_s_alloc); rb_define_method(cThGroup, "list", thgroup_list, 0); diff --git a/inits.c b/inits.c index 947bbbe242..647067f5b4 100644 --- a/inits.c +++ b/inits.c @@ -16,6 +16,7 @@ void Init_Array _((void)); void Init_Bignum _((void)); void Init_Binding _((void)); void Init_Comparable _((void)); +void Init_Cont _((void)); void Init_Dir _((void)); void Init_Enumerable _((void)); void Init_Enumerator _((void)); @@ -76,6 +77,7 @@ rb_call_inits() Init_signal(); Init_process(); Init_load(); + Init_Cont(); Init_Proc(); Init_Binding(); Init_Math();