X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FEvac.c;h=6ca7d85fc2ce9a211683897bbd936166679f35da;hb=6feeea5a596026e3416ec6dcd5cae6fecaeb2e27;hp=bae6ed719019208efabbe75e12657cf349fd3459;hpb=64c17c4561cf419a4c70511bafc0815ea670bb2e;p=ghc-hetmet.git diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index bae6ed7..6ca7d85 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -846,6 +846,14 @@ selector_loop: if (thunk_selector_depth >= MAX_THUNK_SELECTOR_DEPTH) { break; } + + // we don't update THUNK_SELECTORS in the compacted + // generation, because compaction does not remove the INDs + // that result, this causes confusion later. + if (Bdescr((P_)selectee)->flags && BF_COMPACTED) { + break; + } + thunk_selector_depth++; val = eval_thunk_selector(info->layout.selector_offset,