diff --git a/src/gc.c b/src/gc.c index 9638e878dc91ace493b4d03c771e34b96294c70e..e3d0a973ec2d486ef4d7314db77a96393c608380 100644 --- a/src/gc.c +++ b/src/gc.c @@ -4988,7 +4988,7 @@ static int mc_cycle_depth_from_obj (struct object *o) static void pass_lookahead_visit_ref (void *thing, int ref_type, visit_thing_fn *visit_fn, void *extra) { - struct mc_marker *ref_to = find_mc_marker (thing); + struct mc_marker *ref_to; int ref_from_flags, ref_to_flags, old_la_count, ref_to_la_count; int ref_added = 0, check_new_candidate = 0, la_count_handled = 0; @@ -5001,10 +5001,14 @@ static void pass_lookahead_visit_ref (void *thing, int ref_type, if (mc_block_strings > 0 && visit_fn == (visit_thing_fn *) &visit_string) { +#ifdef MEMORY_COUNT_DEBUG + ref_to = find_mc_marker (thing); +#endif MC_DEBUG_MSG (ref_to, "ignored string"); return; } + ref_to = find_mc_marker (thing); ref_from_flags = mc_ref_from->flags; /* Create mc_marker if necessary. */