From c300a36dbc9fd3197e0fd8166679f6a1c7f7e253 Mon Sep 17 00:00:00 2001 From: Andi McClure Date: Mon, 29 Aug 2016 13:48:48 -0400 Subject: [PATCH] GC bridge: Move bridge-require-precise-merge to MONO_GC_PARAMS This was previously in MONO_GC_DEBUG, but we do not use this for production-viable flags. --- mono/metadata/sgen-bridge-internals.h | 1 + mono/metadata/sgen-bridge.c | 16 ++++++++++++++-- mono/metadata/sgen-mono.c | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mono/metadata/sgen-bridge-internals.h b/mono/metadata/sgen-bridge-internals.h index a3d64be9bc1..09224b2f15b 100644 --- a/mono/metadata/sgen-bridge-internals.h +++ b/mono/metadata/sgen-bridge-internals.h @@ -33,6 +33,7 @@ void sgen_bridge_describe_pointer (GCObject *object); gboolean sgen_is_bridge_object (GCObject *obj); void sgen_mark_bridge_object (GCObject *obj); +gboolean sgen_bridge_handle_gc_param (const char *opt); gboolean sgen_bridge_handle_gc_debug (const char *opt); void sgen_bridge_print_gc_debug_usage (void); diff --git a/mono/metadata/sgen-bridge.c b/mono/metadata/sgen-bridge.c index 8cff504267f..e213920810e 100644 --- a/mono/metadata/sgen-bridge.c +++ b/mono/metadata/sgen-bridge.c @@ -665,6 +665,20 @@ register_test_bridge_callbacks (const char *bridge_class_name) mono_gc_register_bridge_callbacks (&callbacks); } +gboolean +sgen_bridge_handle_gc_param (const char *opt) +{ + assert (!bridge_processor_started ()); + + if (!strcmp (opt, "bridge-require-precise-merge")) { + bridge_processor_config.scc_precise_merge = TRUE; + } else { + return FALSE; + } + + return TRUE; +} + gboolean sgen_bridge_handle_gc_debug (const char *opt) { @@ -675,8 +689,6 @@ sgen_bridge_handle_gc_debug (const char *opt) register_test_bridge_callbacks (g_strdup (opt)); } else if (!strcmp (opt, "enable-bridge-accounting")) { bridge_processor_config.accounting = TRUE; - } else if (!strcmp (opt, "enable-tarjan-precise-merge")) { - bridge_processor_config.scc_precise_merge = TRUE; } else if (g_str_has_prefix (opt, "bridge-dump=")) { char *prefix = strchr (opt, '=') + 1; set_dump_prefix(prefix); diff --git a/mono/metadata/sgen-mono.c b/mono/metadata/sgen-mono.c index 19265f57ef4..f80cc360319 100644 --- a/mono/metadata/sgen-mono.c +++ b/mono/metadata/sgen-mono.c @@ -2896,7 +2896,7 @@ sgen_client_handle_gc_param (const char *opt) } else if (g_str_has_prefix (opt, "toggleref-test")) { /* FIXME: This should probably in MONO_GC_DEBUG */ sgen_register_test_toggleref_callback (); - } else { + } else if (!sgen_bridge_handle_gc_param (opt)) { return FALSE; } return TRUE; -- 2.25.1