aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4persistent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4persistent.cpp')
-rw-r--r--src/qml/jsruntime/qv4persistent.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4persistent.cpp b/src/qml/jsruntime/qv4persistent.cpp
index 1b191f3384..0b3c7a4da0 100644
--- a/src/qml/jsruntime/qv4persistent.cpp
+++ b/src/qml/jsruntime/qv4persistent.cpp
@@ -216,7 +216,7 @@ PersistentValue::PersistentValue(const PersistentValue &other)
}
}
-PersistentValue::PersistentValue(ExecutionEngine *engine, const ValueRef value)
+PersistentValue::PersistentValue(ExecutionEngine *engine, const Value &value)
{
val = engine->memoryManager->m_persistentValues->allocate();
*val = value;
@@ -228,6 +228,16 @@ PersistentValue::PersistentValue(ExecutionEngine *engine, ReturnedValue value)
*val = value;
}
+PersistentValue::PersistentValue(ExecutionEngine *engine, Object *object)
+ : val(0)
+{
+ if (!object)
+ return;
+
+ val = engine->memoryManager->m_persistentValues->allocate();
+ *val = object;
+}
+
PersistentValue::~PersistentValue()
{
PersistentValueStorage::free(val);
@@ -274,7 +284,7 @@ PersistentValue &PersistentValue::operator=(Object *object)
return *this;
}
-void PersistentValue::set(ExecutionEngine *engine, const ValueRef value)
+void PersistentValue::set(ExecutionEngine *engine, const Value &value)
{
if (!val)
val = engine->memoryManager->m_persistentValues->allocate();
@@ -323,7 +333,7 @@ WeakValue::~WeakValue()
PersistentValueStorage::free(val);
}
-void WeakValue::set(ExecutionEngine *engine, const ValueRef value)
+void WeakValue::set(ExecutionEngine *engine, const Value &value)
{
if (!val)
val = engine->memoryManager->m_weakValues->allocate();