diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-01-15 11:36:57 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2015-01-23 08:07:32 +0100 |
commit | 002a5d4303b3b182ae4abc4a752c49787c1c2821 (patch) | |
tree | 69c7666ed1061c7acacee1d76597c06405459c80 /src/qml/jsruntime/qv4value_p.h | |
parent | fddc75e862032163af36d2282051758647b62d15 (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.h | 7 |
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)); } |