From b4cb71e9d716e8061bcb491d77bad1a03a7d2930 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 13 Feb 2015 13:39:20 +0100 Subject: More cleanups Get rid of Value::asObject(), and pass const Managed pointers into some more vtable methods. Change-Id: Ia4f427d5fd8868f77b4015d1ce5424d32bfc2115 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4managed_p.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/qml/jsruntime/qv4managed_p.h') 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(this) : 0; } FunctionObject *asFunctionObject() { return d()->vtable->isFunctionObject ? reinterpret_cast(this) : 0; } BooleanObject *asBooleanObject() { return d()->vtable->type == Type_BooleanObject ? reinterpret_cast(this) : 0; } ArgumentsObject *asArgumentsObject() { return d()->vtable->type == Type_ArgumentsObject ? reinterpret_cast(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 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() : 0; } template<> inline FunctionObject *managed_cast(Managed *m) -- cgit v1.2.3