diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-02-13 13:39:20 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-04-21 13:01:47 +0000 |
commit | b4cb71e9d716e8061bcb491d77bad1a03a7d2930 (patch) | |
tree | 319989040ba9113e182da0dd19af9ba8192ae150 /src/qml/jsruntime/qv4managed_p.h | |
parent | fc5a11aadcf7a12ee5a1f91f567daefce28ada60 (diff) |
More cleanups
Get rid of Value::asObject(), and pass const Managed pointers
into some more vtable methods.
Change-Id: Ia4f427d5fd8868f77b4015d1ce5424d32bfc2115
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/jsruntime/qv4managed_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4managed_p.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index 31e52dff79..6716662dc8 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -150,7 +150,6 @@ public: }; Q_MANAGED_TYPE(Invalid) - Object *asObject() { return d()->vtable->isObject ? reinterpret_cast<Object *>(this) : 0; } FunctionObject *asFunctionObject() { return d()->vtable->isFunctionObject ? reinterpret_cast<FunctionObject *>(this) : 0; } BooleanObject *asBooleanObject() { return d()->vtable->type == Type_BooleanObject ? reinterpret_cast<BooleanObject *>(this) : 0; } ArgumentsObject *asArgumentsObject() { return d()->vtable->type == Type_ArgumentsObject ? reinterpret_cast<ArgumentsObject *>(this) : 0; } @@ -185,6 +184,11 @@ inline const Managed *Value::as() const { return 0; } +template<> +inline const Object *Value::as() const { + return isManaged() && m && m->vtable->isObject ? objectValue() : 0; +} + template<typename T> inline T *managed_cast(Managed *m) { @@ -199,7 +203,7 @@ inline String *managed_cast(Managed *m) template<> inline Object *managed_cast(Managed *m) { - return m ? m->asObject() : 0; + return m ? m->as<Object>() : 0; } template<> inline FunctionObject *managed_cast(Managed *m) |