From 52e5423bf2ef656eed27f5d38449b1bda82edfbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 4 Jun 2015 17:58:02 +0200
Subject: [PATCH] count_memory: Return early when visiting strings and
 lookahead >= 0.

Similar fix to the one for the case where lookahead < 0, but not as general.
---
 src/gc.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gc.c b/src/gc.c
index 9638e878dc..e3d0a973ec 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. */
-- 
GitLab