aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libexpr/eval.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 1ab2b0ac1..113850bff 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -188,8 +188,15 @@ void initGC()
#if HAVE_BOEHMGC
/* Initialise the Boehm garbage collector. */
+
+ /* Don't look for interior pointers. This reduces the odds of
+ misdetection a bit. */
GC_set_all_interior_pointers(0);
+ /* We don't have any roots in data segments, so don't scan from
+ there. */
+ GC_set_no_dls(1);
+
GC_INIT();
GC_set_oom_fn(oomHandler);