aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4functionobject.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-10-27 08:54:26 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-10-27 15:19:12 +0100
commit57e5407178ce05f577bd032a7bab2508434a4b02 (patch)
treefed4c0d9e82d619c572bd6d86ea1cc9a92436e58 /src/qml/jsruntime/qv4functionobject.cpp
parent8539aa87345fc9a972d9b400fa42fd742b01d4ed (diff)
Don't check the this pointer for 0 in member functions
This actually violates the C++ standard that defines that you aren't allowed to call member functions on an invalid object. Instead insert the 0 pointer checks on the caller side where required. Change-Id: I8be3c3831594bb6482e9ef6de6e590ec437ac0f8 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject.cpp')
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 67f2a0c75c..f3ad8ef892 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -298,7 +298,9 @@ ReturnedValue FunctionPrototype::method_apply(CallContext *ctx)
for (quint32 i = 0; i < len; ++i)
callData->args[i] = arr->getIndexed(i);
} else {
- uint alen = qMin(len, arr->arrayData()->length());
+ uint alen = arr->arrayData() ? arr->arrayData()->length() : 0;
+ if (alen > len)
+ alen = len;
for (uint i = 0; i < alen; ++i)
callData->args[i] = static_cast<SimpleArrayData *>(arr->arrayData())->data(i);
for (quint32 i = alen; i < len; ++i)