| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
Change-Id: Icc2d86758f43c89493b2ef3afee913c22e2a1b88
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Disable tests which need QtWidgets when that module is not available.
Note that a missing QtWidgets also implies a missing QtScriptTools.
Change-Id: I59ae3c25cfebf24ec9f8418b78b8b9f8c1caa7e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|/
|
|
|
|
|
|
|
|
| |
Add missing MAP_NORESERVE, and fix error checking.
Special thanks to Olivier JG for debugging the issue.
Task-number: QTBUG-27322
Change-Id: Ic4d5aa5849b9b5500fd3065aad5c86dd089a850b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
The global files now live in qtbase only, and are made available to the
other modules via the $QT_INSTALL_DOCS variable.
Change-Id: Ia10e092bb6780d379dacafe0a10a6b78ce7f9a6c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
|
|
|
|
| |
Change-Id: Ifdf1bb4b4bbb77cb8f5d5d4a3a6108763b672c57
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
|
|
|
|
| |
Change-Id: I3bd323c9ff89feadc9a8efa1f04a91124e03d3ec
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|
|
|
|
| |
Change-Id: I22bba8d2d175d787913d1e2269ad2ca8ff762043
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: I9d4f8b6b3af98bb8cc7a4b773a5c663691e5476b
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Id0b72b8c895b0eab04a740bf83859c9b646dd911
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-27293
Change-Id: I3b9a035aa44187dc25967c0e8a96854f0d6307e1
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
The example needs no_batch in CONFIG because examples/script/customclass
and examples/script/qscript contain a main.cpp and nmake's inference
rules get confused which one to choose.
See QTBUG-13496 for details.
Change-Id: Ia5b06d985504ff4e72ea5e492a623edce252f57a
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
|
|
|
|
|
|
|
| |
qInstallMsgHandler got deprecated in Qt 5.
Change-Id: I4da748659f232d8b0fe4b16fe9cf83290762dd2c
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
|
|
|
|
|
| |
Change-Id: I1d95fe8089d8384563654630b9f4b201245887b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
ENABLE_EXECUTABLE_ALLOCATOR_FIXED requires sys/mman.h which is not
available with MinGW-w64.
Change-Id: I6e76ce0c570e5819657debf813f0e80cef907dd4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Yuchen Deng <loaden@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The .gitattributes and .gitignore files do not need to be present in
packaged sources, as they are for people using the Git repository.
People who download tarballs usually don't reimport into Git -- they
should just download the actual repositories.
Meanwhile, the .tag file is quite useful. Instead of making Git extract
to the useless SHA-1 of the $n string, ask git-archive to store
the SHA-1 of the commit being packaged.
Change-Id: I203c273457977a1d5b2d4795cdcdd81b7b64549c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
| |
Change-Id: Id2042fa8c34601728381382573dee1ebc80dbbcd
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit df0ec196031d33850324dc5eeed2d71f61413885 assumed that JSC's
Interpreter::throwException function is called exactly once when an
exception occurs. That's wrong. If there is a native call inbetween
two JS calls on the stack, the call stack will be unwound to the
point of the native call frame, and throwException will return. After
the native (C) call frame has been unwound, throwException will be
called again to unwind remaining JS call frames, and so on.
This was causing QtScript to discard the backtrace belonging to the
inner-most JS frames; the backtrace would be regenerated from a
partially unwound state.
Fix this by ignoring subsequent calls to the uncaughtException()
callback once a backtrace has been captured; the backtrace is already
cleared before each evaluation is started.
Task-number: QTBUG-26889
Change-Id: I03e1d60fbac5e592cff1dd5ef70f397cf94454ae
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
It is to be removed, and is obsoleted by QMetaType::PointerToQObject.
By using QMetaType::PointerToQObject, we also gain the feature
that all pointers to types derived from QObject return true for
QScriptValue::isQObject().
Change-Id: I18392b5b6cde3a45d060c37612d987a5cf8e8f18
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This function has been broken since Qt 4.6 (when the JavaScriptCore-
based back-end was introduced). Fix it by introducing a callback in
JSC that allows us to capture the stack when an uncaught exception
occurs.
Task-number: QTBUG-6139
Change-Id: I4a829323c9fb0c8b2f16a2e5d6f0aeb13cc32561
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the JSC-based back-end, Error objects don't have a "stack"
property, and there is no Error.backtrace() function. Commit
a670b4756885b106db04651cd2a7030e02f0cc2f removed all mention of them
from the documentation, but not from the autotest; this code wasn't
reached anymore because of a preceding QEXPECT_FAIL in the autotest
function.
Change-Id: Ib34cbd5edff126137cec02bf68624e4a102ace84
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Such conversion is not guaranteed to be lossless on all platforms,
but it's still reasonable to support these types by default.
JSC::JSValue already had constructors for them.
The type matching / overload resolution in the QObject binding
already handled long and ulong, but the value conversion itself
was missing, for some reason.
Task-number: QTBUG-2124
Change-Id: I14ff29a8e949403234b7659c0aca8b48bcdbda0e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In debug mode, if a QScriptEngine was never destroyed, JavaScriptCore
would output a message like
LEAK: 120 Structure
on stderr at exit.
This is not terribly helpful to users; also, it's not common for Qt
classes to produce such output. Since JavaScriptCore's only usage of
the logging facility is for reporting these "leaks", we can disable
logging altogether.
Task-number: QTBUG-18201
Change-Id: Id598bd1f48129d821a954cc49d8e3ab715d78426
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
| |
Change-Id: I05b18befb71ef0483ee5a40dab6163f0612782e0
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
|
|
|
|
|
| |
Change-Id: Ied05f26ee735d63a89a5bcf9b7afbeaa8e70809c
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Issue 1: Even if a sender object was only weakly referenced, the
connection's slot function would still get marked. If the slot was a
closure, its scope could hold a reference to the sender object, so by
marking the closure, the sender would get marked, too - even if there
were no other references to the closure outside of the QObject
connection structure. This would cause the sender object to stay
alive, rather than being garbage-collected (i.e., it leaked).
Issue 2: It's possible that a closure used as a slot in a connection
for one QObject holds the only reference to another QObject that has
connections of its own. In that case, if the first object is
explicitly referenced, the second object (and its connections) should
get marked. But depending on the order in which the connections were
marked, the second object might get treated incorrectly.
This commit solves both issues by introducing an iterative scheme for
marking connections. The first pass marks only connections whose
sender object is referenced elsewhere in the JS environment. The
second pass marks connections whose sender object is referenced by
slots of the connections marked in the first pass. And so on, until
no more connections should be marked. At that point, any remaining
unmarked connections are effectively dead (belonging to QObjects that
can be reclaimed by the GC).
Task-number: QTBUG-26590
Change-Id: I50aa66f7fe407a6827b6f2a12e027275a2fb4655
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
| |
Makes it possible to use the collectGarbage_helper function in other
autotests too (e.g., tst_qscriptextqobject).
Change-Id: I4fefa36aba13ebf9f931f0e2b90d7ddbc0036a6c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
| |
No library other than the core libraries should depend on their
export macros being in qglobal.h.
Change-Id: I6ded70813f6296ca5aa1d7d3cdb38503a5538424
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was a regression introduced in Qt 4.6 (JavaScriptCore-based
backend). pushContext() should always create a context with a "clean"
scope (only the Global Object and the context's own activation object
should be in the scope chain).
The scope chain API is internal, but the wrong behavior could still
be observed e.g. through QScriptEngine::evaluate().
Task-number: QTBUG-18188
Change-Id: I138dabc665d7275fb85d3b5e1b473d56096a989e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
| |
Cherry-picked from webkit commit
a5b3261a8c4386b4e14ce40a34c7fc933a5f7001
Task-number: QTBUG-23871
Change-Id: Ia028fe072b349e3a7883ae0f6f7298941cc1bc9e
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Qt 5.0 beta requires changing the default to the 5.0 API, disabling
the deprecated code. However, tests should test (and often do) the
compatibility API too, so turn it back on.
Task-number: QTBUG-25053
Change-Id: I432719e9520662c9dda5eaa580f0b508de4120fe
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If QtWidgets is not available, disable a few examples which need it.
Standardize on isEmpty(QT.widgets.name) in preference to
contains(QT_CONFIG,no-widgets).
Change-Id: I00335149a75911dd4ab42a4ce659889d548a8be3
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
|
|
|
|
|
| |
Change-Id: I044409a384a1931c7727cc679fb54a87be627a45
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was a regression against the pre-JavaScriptCore
implementation, where we used to store the selected method index as
an internal member of the QScriptContext(Private). But in the
JSC-based implementation, QScriptContext is implemented as a
pointer to a JSC::CallFrame, and there are no unused fields in
CallFrame where the method index can be stashed.
Refactor the Qt method call logic so that the method selection is
separate from the actual processing of the target method. This way,
QScriptContextInfo can compute the method index the same way that
the actual method call did.
Task-number: QTBUG-6133
Change-Id: I619fa8b91542d0b6ab5a44b00266cc0705c95823
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even if getPropertyDescriptor() returns true, it's not guaranteed
that PropertyDescriptor::setter() or PropertyDescriptor::value()
returns a valid JSC value.
This code is in an "#ifdef QT_BUILD_SCRIPT_LIB" block, i.e. a
patch we added on top of the original JSC sources.
The lack of checks caused the getter-in-prototype and
indexed-accessors tests from the V8 test suite to assert in
debug mode.
Task-number: QTBUG-17915
Change-Id: I568d83f2f80b28871ea0d934a8e33078ac8aa3ad
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
| |
Change-Id: Iab5e01b2254bbf826551c3f4c8309d303d314136
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Address the "###" comment.
When QScriptEngine::newQObject() is called with the option
PreferExistingWrapperObject, the resulting wrapper object is cached
by the engine, in case it will be needed later (e.g., by a subsequent
newQObject() call for the same QObject, with the same wrap options).
But if a QObject wrapper object is only referenced by the QtScript
internals (i.e., not reachable from the JSC stack/heap, or kept in a
QScriptValue), the wrapper should not be kept alive if the ownership
is ScriptOwnership, or if the ownership is AutoOwnership and the C++
object has no parent.
If the wrapper is marked in that case, it won't get collected, and
hence the C++ object will be kept alive, too. In practice, QtScript
appears to leak memory (the objects will only be destroyed when the
engine is destroyed).
Our copy of JSC doesn't have a concept of weak references; the
ClientData callback in the JSC markRoots() function (which causes
QScriptEnginePrivate::mark() to be called) was moved to the end. This
enables the wrapper and connection marking logic to determine whether
a wrapper can be safely discarded (if it hasn't been marked by JSC by
this point, it must be a weak reference).
Task-number: QTBUG-21993
Change-Id: I61f6aafc91f080b80d3f5859148e645b80d9b653
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
| |
Calling methodSignature() is inefficient in Qt5 because it
dynamically constructs a string. In the places where we only want the
method name, we should call QMetaMethod::name() instead.
Change-Id: Ie2e66945a3a275630aad1c9253bd60b9889b7cfd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-15213
Change-Id: I6618cbde2032d6ced780057930f43fa967087262
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Since the switch to JavaScriptCore, Error objects no longer have the
non-standard "stack" property, and we're not going to hack
JavaScriptCore to support it.
Task-number: QTBUG-15956
Change-Id: I085f24fbb179bbf3d1609cbc13e963fa51b4dbbc
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
| |
15 characters isn't enough to hold results like
1.1760477643322587e-7. Instead it would get chopped down to
1.1760477643322.
Task-number: QTBUG-20845
Change-Id: I9ea697ec627caa5225b84208bdf1e6ac0be59ebb
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-26261
Change-Id: Ie269c56c0336b1c937d4ec551f913ae7537d0338
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- load(qt_module) => load(qt_build_config)
- remove:
- CONFIG+=module (obsolete)
- setup of PKGCONFIG* variables (automated now)
- code relating to module version headers (automated now)
- %mastercontent assignment (automated now)
- QT_BUILD_*_LIB defines (automated now)
- pointless QPRO_PWD assignments
- qmake -project boilerplate
Change-Id: I618bc1db930a372e7f713f21f21b2cfedc839258
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
| |
Change-Id: I060145658caaa4b4d39c323c6004e594ff44f98f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An overload for std::swap() what works with std::pair<A,B> is included
in libc++ (but not libstdc++). Avoid ambiguity in HashTable.h by
omitting the version there and using the std::swap() version.
Collector.cpp needs to include pthread.h directly, as it is not
automatically included by libc++'s headers (libstdc++ does pull in
pthread.h though).
Change-Id: I20ffe5a745900d1cfa1e489ebf4376e454eded5f
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: Ic111b51472e0252446be4c2db0f991aac1c72e1d
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
see https://bugs.gentoo.org/show_bug.cgi?id=407315
The UChar32 is declared as signed 32-bit int since ICU 2.4,
no chance they'll fix their code.
Change-Id: I9691507c8ca14a04610e9b13ae13f416929ffa08
Reviewed-by: Davide Pesavento <davidepesa@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
U+10C1 and U+10CD has been added in the Unicode 6.1 and assigned with
general category Lu (Uppercase Letter). toLower(Lu) can never be Lu,
thus the failing testcases are just wrong -> omit them.
This also avoids using of QUnicodeTables internals in JSC.
Change-Id: I6aa6dab686dc3e3556ebe83c395c5d93e42cfb4f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: I6aa6dab686dc3e3556ebe83c395c5d93e42cfb4c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
| |
They cause valgrind errors and crashes and it's unclear how
they are at all related to QtScript
Change-Id: I0bf1d6b047e0770d965a174cd66bfb3d7cad4ac3
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
| |
Change-Id: I9fabf055a959b27cd44fb2e179f98bfae9d7d297
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|