aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/tony/mpal/loadmpc.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/tony/mpal/loadmpc.cpp b/engines/tony/mpal/loadmpc.cpp
index aa048c0b2f..e222891170 100644
--- a/engines/tony/mpal/loadmpc.cpp
+++ b/engines/tony/mpal/loadmpc.cpp
@@ -690,7 +690,7 @@ bool ParseMpc(const byte *lpBuf) {
*/
static void freeDialog(LPMPALDIALOG lpmdDialog) {
// Free the periods
- int i;
+ int i, j;
for (i = 0; i < MAX_PERIODS_PER_DIALOG && (lpmdDialog->_periods[i]); ++i)
globalFree(lpmdDialog->_periods[i]);
@@ -702,6 +702,14 @@ static void freeDialog(LPMPALDIALOG lpmdDialog) {
freeExpression(lpmdDialog->_command[i].expr);
}
}
+
+ // Free the choices
+ for (i = 0; i < MAX_CHOICES_PER_DIALOG; ++i) {
+ for (j = 0; j < MAX_SELECTS_PER_CHOICE; j++) {
+ if (lpmdDialog->_choice[i]._select[j].when)
+ freeExpression(lpmdDialog->_choice[i]._select[j].when);
+ }
+ }
}
/**