From 5df571699308b0e47662b6ef49faa0aed25484bd Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Mon, 12 May 2014 15:30:22 -0700 Subject: [PATCH] Fixed memory corruption bug caused by GC --- std/d/parser.d | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/std/d/parser.d b/std/d/parser.d index 0560a4d..5c9d6c4 100644 --- a/std/d/parser.d +++ b/std/d/parser.d @@ -3564,12 +3564,14 @@ invariant() foo(); m.scriptLine = advance(); if (currentIs(tok!"module")) m.moduleDeclaration = parseModuleDeclaration(); + Declaration[] declarations; while (moreTokens()) { auto declaration = parseDeclaration(); if (declaration !is null) - m.declarations ~= declaration; + declarations ~= declaration; } + m.declarations = ownArray(declarations); return m; }