aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4value_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-01-15 11:36:57 +0100
committerLars Knoll <lars.knoll@digia.com>2015-01-23 08:07:32 +0100
commit002a5d4303b3b182ae4abc4a752c49787c1c2821 (patch)
tree69c7666ed1061c7acacee1d76597c06405459c80 /src/qml/jsruntime/qv4value_p.h
parentfddc75e862032163af36d2282051758647b62d15 (diff)
Get rid of most uses of ValueRef
Instead pass a const Value & into the functions With our new inheritance structure, we can get rid of ValueRef and instead simply pass a pointer to a Value again. Pointers to Values are safe to use again now, as they are now guaranteed to be in a place where the GC knows about them. Change-Id: I44c606fde764db3993b8128fd6fb781d3a298e53 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4value_p.h')
-rw-r--r--src/qml/jsruntime/qv4value_p.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h
index 58e82f8fe2..22f0e1e4d5 100644
--- a/src/qml/jsruntime/qv4value_p.h
+++ b/src/qml/jsruntime/qv4value_p.h
@@ -394,7 +394,6 @@ struct Q_QML_PRIVATE_EXPORT Value
template<typename T>
Value &operator=(const Scoped<T> &t);
- Value &operator=(const ValueRef v);
Value &operator=(const Value &v) {
val = v.val;
return *this;
@@ -423,7 +422,6 @@ struct Q_QML_PRIVATE_EXPORT Primitive : public Value
static unsigned int toUInt32(double value);
inline operator ValueRef();
- Value asValue() const { return *this; }
};
inline Primitive Primitive::undefinedValue()
@@ -545,6 +543,9 @@ struct ValueRef {
return ptr;
}
+ operator Value &() { return *ptr; }
+ operator const Value &() const { return *ptr; }
+
operator Value *() {
return ptr;
}
@@ -555,7 +556,7 @@ struct ValueRef {
static ValueRef fromRawValue(Value *v) {
return ValueRef(v);
}
- static const ValueRef fromRawValue(const Value *v) {
+ static const Value &fromRawValue(const Value *v) {
return ValueRef(const_cast<Value *>(v));
}