@@ -156,8 +156,9 @@ MMTk_RubyUpcalls ruby_upcalls;
156156#define MAP_ANONYMOUS MAP_ANON
157157#endif
158158
159- #if USE_MMTK
160159static bool mmtk_enable = false;
160+
161+ #if USE_MMTK
161162static const char * mmtk_env_plan = NULL ;
162163static const char * mmtk_pre_arg_plan = NULL ;
163164static const char * mmtk_post_arg_plan = NULL ;
@@ -1966,6 +1967,7 @@ rb_objspace_alloc(void)
19661967
19671968#if USE_MMTK
19681969 if (rb_mmtk_enabled_p ()) {
1970+
19691971 MMTk_Builder * mmtk_builder = mmtk_builder_default ();
19701972
19711973 mmtk_builder_set_plan (mmtk_builder , mmtk_chosen_plan );
@@ -15140,6 +15142,9 @@ gc_using_rvargc_p(VALUE mod)
1514015142static VALUE
1514115143rb_mmtk_plan_name (VALUE _ )
1514215144{
15145+ if (!rb_mmtk_enabled_p ()) {
15146+ rb_raise (rb_eRuntimeError , "Debug harness can only be used when MMTk is enabled, re-run with --mmtk." );
15147+ }
1514315148 const char * plan_name = mmtk_plan_name ();
1514415149 return rb_str_new (plan_name , strlen (plan_name ));
1514515150}
@@ -15175,6 +15180,9 @@ rb_mmtk_enabled(VALUE _)
1517515180static VALUE
1517615181rb_mmtk_harness_begin (VALUE _ )
1517715182{
15183+ if (!rb_mmtk_enabled_p ()) {
15184+ rb_raise (rb_eRuntimeError , "Debug harness can only be used when MMTk is enabled, re-run with --mmtk." );
15185+ }
1517815186 mmtk_harness_begin ((MMTk_VMMutatorThread )GET_THREAD ());
1517915187 return Qnil ;
1518015188}
@@ -15191,6 +15199,9 @@ rb_mmtk_harness_begin(VALUE _)
1519115199static VALUE
1519215200rb_mmtk_harness_end (VALUE _ )
1519315201{
15202+ if (!rb_mmtk_enabled_p ()) {
15203+ rb_raise (rb_eRuntimeError , "Debug harness can only be used when MMTk is enabled, re-run with --mmtk." );
15204+ }
1519415205 mmtk_harness_end ((MMTk_VMMutatorThread )GET_THREAD ());
1519515206 return Qnil ;
1519615207}
@@ -16193,8 +16204,9 @@ void rb_mmtk_post_process_opts_finish(bool feature_enable) {
1619316204 }
1619416205}
1619516206
16207+ #endif
16208+
1619616209bool rb_mmtk_enabled_p (void ) {
1619716210 return mmtk_enable ;
1619816211}
1619916212
16200- #endif
0 commit comments