From: Kent Hansen Date: Tue, 15 Nov 2011 08:21:24 +0000 (+0100) Subject: Make non-threaded VME interpreter work again X-Git-Tag: qt-v5.0.0-alpha1~1130 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=09313a8a3364c807a63ad69d4293f7502f10a8df;p=profile%2Fivi%2Fqtdeclarative.git 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 --- 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;