summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/imports/qtcanvas3d/context3d.cpp45
-rw-r--r--src/imports/qtcanvas3d/teximage3d.cpp21
3 files changed, 23 insertions, 45 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 5ee85f8..ff8a3a7 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,6 +2,6 @@ load(qt_build_config)
DEFINES += QT_NO_FOREACH
-MODULE_VERSION = 5.10.1
+MODULE_VERSION = 5.11.0
CMAKE_MODULE_TESTS=-
diff --git a/src/imports/qtcanvas3d/context3d.cpp b/src/imports/qtcanvas3d/context3d.cpp
index 7b2e590..bad4e4f 100644
--- a/src/imports/qtcanvas3d/context3d.cpp
+++ b/src/imports/qtcanvas3d/context3d.cpp
@@ -4422,10 +4422,7 @@ QJSValue CanvasContext::getParameter(glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Float32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
// Float32Array (with 4 values)
@@ -4443,10 +4440,7 @@ QJSValue CanvasContext::getParameter(glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Float32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
// Int32Array (with 2 elements)
@@ -4461,10 +4455,7 @@ QJSValue CanvasContext::getParameter(glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Int32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
// Int32Array (with 4 elements)
// Intentional flow through
@@ -4480,10 +4471,7 @@ QJSValue CanvasContext::getParameter(glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Int32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
// sequence<GLboolean> (with 4 values)
@@ -4560,10 +4548,7 @@ QJSValue CanvasContext::getParameter(glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::UInt32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
case FRAMEBUFFER_BINDING: {
return m_engine->newQObject(m_currentFramebuffer);
@@ -5702,10 +5687,7 @@ QJSValue CanvasContext::getVertexAttrib(uint index, glEnums pname)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Float32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
}
default:
@@ -5906,10 +5888,7 @@ QJSValue CanvasContext::getUniform(QJSValue program3D, QJSValue location3D)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Int32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
}
case FLOAT_VEC2:
@@ -5932,10 +5911,7 @@ QJSValue CanvasContext::getUniform(QJSValue program3D, QJSValue location3D)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Float32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
}
case BOOL_VEC2:
@@ -5981,10 +5957,7 @@ QJSValue CanvasContext::getUniform(QJSValue program3D, QJSValue location3D)
QV4::ScopedFunctionObject constructor(scope,
m_v4engine->typedArrayCtors[
QV4::Heap::TypedArray::Float32Array]);
- QV4::ScopedCallData callData(scope, 1);
- callData->args[0] = buffer;
- constructor->construct(scope, callData);
- return QJSValue(m_v4engine, scope.result.asReturnedValue());
+ return QJSValue(m_v4engine, constructor->callAsConstructor(buffer, 1));
}
}
default:
diff --git a/src/imports/qtcanvas3d/teximage3d.cpp b/src/imports/qtcanvas3d/teximage3d.cpp
index d3e1e07..9814e6b 100644
--- a/src/imports/qtcanvas3d/teximage3d.cpp
+++ b/src/imports/qtcanvas3d/teximage3d.cpp
@@ -47,18 +47,23 @@ QT_BEGIN_NAMESPACE
QT_CANVAS3D_BEGIN_NAMESPACE
-static QMap<QQmlEngine *,CanvasTextureImageFactory *>m_qmlEngineToImageFactoryMap;
-static ulong m_texId = 0;
-
-class StaticFactoryMapDeleter
+class EngineToImageFactoryMap : public QMap<QQmlEngine *, CanvasTextureImageFactory *>
{
+ bool isDeleting = false;
public:
- StaticFactoryMapDeleter() {}
- ~StaticFactoryMapDeleter() {
- qDeleteAll(m_qmlEngineToImageFactoryMap);
+ ~EngineToImageFactoryMap() {
+ isDeleting = true;
+ qDeleteAll(*this);
+ }
+ void remove(QQmlEngine *e) {
+ if (isDeleting)
+ return;
+ QMap<QQmlEngine *, CanvasTextureImageFactory *>::remove(e);
}
};
-static StaticFactoryMapDeleter staticFactoryMapDeleter;
+
+static EngineToImageFactoryMap m_qmlEngineToImageFactoryMap;
+static ulong m_texId = 0;
CanvasTextureImageFactory::CanvasTextureImageFactory(QQmlEngine *engine, QObject *parent) :
QObject(parent)