From 5875dd48c253275a70eb63919d1a63baa3d0f972 Mon Sep 17 00:00:00 2001 From: Rodrigo Kumpera Date: Mon, 2 Feb 2015 11:04:37 -0500 Subject: [PATCH] [sgen-bridge] Fix all the bridges after the change to have descriptor loading happen outside of scanning. This changes all bridges to use the _safe variant of sgen_obj_get_descriptor. Bridge processing happens in the post-scan world, before objects get untagged. --- mono/metadata/sgen-new-bridge.c | 2 +- mono/metadata/sgen-old-bridge.c | 2 +- mono/metadata/sgen-tarjan-bridge.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mono/metadata/sgen-new-bridge.c b/mono/metadata/sgen-new-bridge.c index 51b00e96695..1733d575f4a 100644 --- a/mono/metadata/sgen-new-bridge.c +++ b/mono/metadata/sgen-new-bridge.c @@ -665,7 +665,7 @@ dfs1 (HashEntry *obj_entry) if (!obj_entry->v.dfs1.is_visited) { int num_links = 0; - mword desc = sgen_obj_get_descriptor (start); + mword desc = sgen_obj_get_descriptor_safe (start); obj_entry->v.dfs1.is_visited = 1; diff --git a/mono/metadata/sgen-old-bridge.c b/mono/metadata/sgen-old-bridge.c index 4e2ba7b84d7..5982c1bde4c 100644 --- a/mono/metadata/sgen-old-bridge.c +++ b/mono/metadata/sgen-old-bridge.c @@ -526,7 +526,7 @@ dfs1 (HashEntry *obj_entry) obj = obj_entry->obj; start = (char*)obj; - desc = sgen_obj_get_descriptor (start); + desc = sgen_obj_get_descriptor_safe (start); if (src) { //g_print ("link %s -> %s\n", sgen_safe_name (src->obj), sgen_safe_name (obj)); diff --git a/mono/metadata/sgen-tarjan-bridge.c b/mono/metadata/sgen-tarjan-bridge.c index 5c6525e9ec7..fbfc8d4f63e 100644 --- a/mono/metadata/sgen-tarjan-bridge.c +++ b/mono/metadata/sgen-tarjan-bridge.c @@ -661,7 +661,7 @@ push_all (ScanData *data) { MonoObject *obj = data->obj; char *start = (char*)obj; - mword desc = sgen_obj_get_descriptor (start); + mword desc = sgen_obj_get_descriptor_safe (start); #if DUMP_GRAPH printf ("**scanning %p %s\n", obj, safe_name_bridge (obj)); @@ -713,7 +713,7 @@ compute_low (ScanData *data) { MonoObject *obj = data->obj; char *start = (char*)obj; - mword desc = sgen_obj_get_descriptor (start); + mword desc = sgen_obj_get_descriptor_safe (start); #include "sgen-scan-object.h" } -- 2.11.4.GIT