summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick3d/quick3d/qt3dquick_global.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/quick3d/quick3d/qt3dquick_global.cpp b/src/quick3d/quick3d/qt3dquick_global.cpp
index a98211991..0ce0b8194 100644
--- a/src/quick3d/quick3d/qt3dquick_global.cpp
+++ b/src/quick3d/quick3d/qt3dquick_global.cpp
@@ -659,10 +659,12 @@ public:
#undef ASSERT_VALID_SIZE
};
-static Quick3DValueTypeProvider valueTypeProvider;
+Quick3DValueTypeProvider *valueTypeProvider = nullptr;
static Quick3DValueTypeProvider *getValueTypeProvider()
{
- return &valueTypeProvider;
+ if (valueTypeProvider == nullptr)
+ valueTypeProvider = new Quick3DValueTypeProvider();
+ return valueTypeProvider;
}
static Quick3DColorProvider *getColorProvider()
@@ -708,7 +710,8 @@ void Quick3D_initialize()
void Quick3D_uninitialize()
{
- QQml_removeValueTypeProvider(&valueTypeProvider);
+ delete valueTypeProvider;
+ valueTypeProvider = nullptr;
}
void Quick3D_registerType(const char *className, const char *quickName, int major, int minor)