summaryrefslogtreecommitdiffstats
path: root/src/script
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-10-01 13:47:09 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-10-01 14:02:22 (GMT)
commit8d920689a704be771488d2aae61b69077a7a491f (patch)
tree73ec502d1cde02dc9758454e26b8e7b7489fa8c2 /src/script
parente247c880800c15914fb12679fe65949034f77403 (diff)
downloadQt-8d920689a704be771488d2aae61b69077a7a491f.zip
Qt-8d920689a704be771488d2aae61b69077a7a491f.tar.gz
Qt-8d920689a704be771488d2aae61b69077a7a491f.tar.bz2
Reset timeout-checker before evaluating when processEventsInterval is used
When the timeout-checker was not reset, it could take a while (e.g. 1-2 seconds) before the next timeout occurred, depending on what the tick counter happened to be after the previous evaluate(). When a processEventsInterval of e.g. 100 milliseconds has been specified, we want the timeout to happen much sooner, thus we need to reset the checker. This will cause the first timeout to happen quickly, and then at steady intervals (processEventsInterval ms) after that. The tst_QScriptEngine::processEventsWhileRunning() test was sporadically failing due to this issue. Reviewed-by: Olivier Goffart
Diffstat (limited to 'src/script')
-rw-r--r--src/script/api/qscriptengine.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index 059b102..fb14940 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -2185,6 +2185,8 @@ QScriptValue QScriptEngine::evaluate(const QString &program, const QString &file
JSC::JSObject* thisObject = (!thisValue || thisValue.isUndefinedOrNull()) ? exec->dynamicGlobalObject() : thisValue.toObject(exec);
JSC::JSValue exceptionValue;
d->timeoutChecker()->setShouldAbort(false);
+ if (d->processEventsInterval > 0)
+ d->timeoutChecker()->reset();
JSC::JSValue result = exec->interpreter()->execute(&executable, exec, thisObject, exec->scopeChain(), &exceptionValue);
if (d->timeoutChecker()->shouldAbort()) {