From 8e161e003529b9ffb703783264b29403ddf0ec97 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 25 Nov 2015 00:22:24 +0100 Subject: MADS: NEBULAR: Fix another (potential) memory leak --- engines/mads/nebular/dialogs_nebular.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'engines/mads') diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp index a5c6a56049..ede16e1f99 100644 --- a/engines/mads/nebular/dialogs_nebular.cpp +++ b/engines/mads/nebular/dialogs_nebular.cpp @@ -82,11 +82,14 @@ bool DialogsNebular::show(int messageId, int objectId) { if (centerFlag) { crFlag = true; } else { - if (objectId == -1) { + if (dialog) + delete dialog; + + if (objectId == -1) dialog = new TextDialog(_vm, FONT_INTERFACE, _defaultPosition, _dialogWidth); - } else { + else dialog = new PictureDialog(_vm, _defaultPosition, _dialogWidth, objectId); - } + dialog->wordWrap(dialogText); dialog->incNumLines(); } @@ -146,11 +149,10 @@ bool DialogsNebular::show(int messageId, int objectId) { } if (!dialog) { - if (objectId == -1) { + if (objectId == -1) dialog = new TextDialog(_vm, FONT_INTERFACE, _defaultPosition, _dialogWidth); - } else { + else dialog = new PictureDialog(_vm, _defaultPosition, _dialogWidth, objectId); - } } if (centerFlag) { -- cgit v1.2.3