From e1ac1db055edf1e620c59f83f1ddc94fc4bcb817 Mon Sep 17 00:00:00 2001 From: rmoore1 Date: Fri, 17 Feb 2006 17:06:58 +0000 Subject: [PATCH] Release control state after each while iteration --- source/components/parser/psloop.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index f94b820f3..0e7e7b354 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psloop - Main AML parse loop - * $Revision: 1.9 $ + * $Revision: 1.10 $ * *****************************************************************************/ @@ -799,7 +799,17 @@ CloseThisOp: { return_ACPI_STATUS (Status2); } + + Status2 = AcpiDsResultStackPop (WalkState); + if (ACPI_FAILURE (Status2)) + { + return_ACPI_STATUS (Status2); + } + + AcpiUtDeleteGenericState ( + AcpiUtPopGenericState (&WalkState->ControlState)); } + AcpiPsPopScope (ParserState, &Op, &WalkState->ArgTypes, &WalkState->ArgCount); @@ -820,6 +830,7 @@ CloseThisOp: return_ACPI_STATUS (Status2); } } + AcpiPsPopScope (ParserState, &Op, &WalkState->ArgTypes, &WalkState->ArgCount);