From 8e60e3f0c6c1482f448dd4d24d716d34046503e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Thu, 6 Jun 2019 08:14:19 +0200 Subject: rts: Fix RetainerProfile early return with TREC_CHUNK When pop() returns with `*c == NULL` retainerProfile will immediately return. All other code paths is pop() continue with the next stackElement when this happens so it seems weird to me that TREC_CHUNK we would suddenly abort everything even though the stack might still have elements left to process. --- rts/RetainerProfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rts/RetainerProfile.c') diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index a4b06398b5..360db37a19 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -849,7 +849,7 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) if (entry_no == ((StgTRecChunk *)se->c)->next_entry_idx) { *c = NULL; popOff(); - return; + break; } entry = &((StgTRecChunk *)se->c)->entries[entry_no]; if (field_no == 0) { -- cgit v1.2.1