FIX #1519, crash in biographical profiling
authorSimon Marlow <simonmar@microsoft.com>
Fri, 24 Aug 2007 10:18:03 +0000 (10:18 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Fri, 24 Aug 2007 10:18:03 +0000 (10:18 +0000)
In eval_thunk_selector(), when filling the slop for a closure we've
just updated, we were using the wrong info table.  This bug appears to
have been in 6.6, too.

rts/sm/Evac.c

index d437e3f..d533e5d 100644 (file)
@@ -905,7 +905,7 @@ selector_loop:
 #ifdef PROFILING
              // For the purposes of LDV profiling, we have destroyed
              // the original selector thunk.
-             SET_INFO(p, info_ptr);
+             SET_INFO(selectee, info_ptr);
              LDV_RECORD_DEAD_FILL_SLOP_DYNAMIC(selectee);
 #endif
              ((StgInd *)selectee)->indirectee = val;