From 09313a8a3364c807a63ad69d4293f7502f10a8df Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 15 Nov 2011 09:21:24 +0100 Subject: [PATCH] Make non-threaded VME interpreter work again 625bb0520708879ef5d281ab0c62fc7ad5415441 added a statement to the QML_NEXT_INSTR macro without turning the macro definition into a block. This caused statements like if (foo) QML_NEXT_INSTR(bar); to unexpectedly break from the switch (the second statement in the QML_NEXT_INSTR expansion is "break"). Change-Id: I384280eaea1dd1f3b940be67d589f3a03d9e8685 Reviewed-by: Aaron Kennedy Reviewed-by: Friedemann Kleint --- src/declarative/qml/qdeclarativevme.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index 52095e3..e39a7c9 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -226,9 +226,11 @@ static void removeBindingOnProperty(QObject *o, int index) case QDeclarativeInstruction::I: \ QML_BEGIN_INSTR_COMMON(I) -# define QML_NEXT_INSTR(I) \ +# define QML_NEXT_INSTR(I) { \ if (watcher.hasRecursed()) return 0; \ - break; + break; \ + } + # define QML_END_INSTR(I) \ if (watcher.hasRecursed() || interrupt.shouldInterrupt()) return 0; \ } break; -- 2.7.4