Remove the context argument from Managed::hasInstance()
authorLars Knoll <lars.knoll@digia.com>
Fri, 21 Jun 2013 18:53:13 +0000 (20:53 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Sat, 22 Jun 2013 19:01:42 +0000 (21:01 +0200)
Change-Id: I33937a469c7ad1c6c9913068e7dc898a39d8bf49
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/qml/v4/qv4functionobject.cpp
src/qml/qml/v4/qv4functionobject_p.h
src/qml/qml/v4/qv4managed.cpp
src/qml/qml/v4/qv4managed_p.h
src/qml/qml/v4/qv4runtime.cpp

index b339805..09ee5f1 100644 (file)
@@ -97,7 +97,7 @@ Value FunctionObject::newInstance()
     return construct(internalClass->engine->current, 0, 0);
 }
 
-bool FunctionObject::hasInstance(Managed *that, ExecutionContext *ctx, const Value &value)
+bool FunctionObject::hasInstance(Managed *that, const Value &value)
 {
     FunctionObject *f = static_cast<FunctionObject *>(that);
 
@@ -105,6 +105,7 @@ bool FunctionObject::hasInstance(Managed *that, ExecutionContext *ctx, const Val
     if (!v)
         return false;
 
+    ExecutionContext *ctx = f->engine()->current;
     Object *o = f->get(ctx, ctx->engine->id_prototype).asObject();
     if (!o)
         ctx->throwTypeError();
@@ -526,10 +527,10 @@ Value BoundFunction::construct(Managed *that, ExecutionContext *context, Value *
     return f->target->construct(context, newArgs, f->boundArgs.size() + argc);
 }
 
-bool BoundFunction::hasInstance(Managed *that, ExecutionContext *ctx, const Value &value)
+bool BoundFunction::hasInstance(Managed *that, const Value &value)
 {
     BoundFunction *f = static_cast<BoundFunction *>(that);
-    return FunctionObject::hasInstance(f->target, ctx, value);
+    return FunctionObject::hasInstance(f->target, value);
 }
 
 void BoundFunction::markObjects(Managed *that)
index 0c361bf..09b31c0 100644 (file)
@@ -132,7 +132,7 @@ struct Q_QML_EXPORT FunctionObject: Object {
 protected:
     static const ManagedVTable static_vtbl;
     static void markObjects(Managed *that);
-    static bool hasInstance(Managed *that, ExecutionContext *ctx, const Value &value);
+    static bool hasInstance(Managed *that, const Value &value);
 };
 
 struct FunctionCtor: FunctionObject
@@ -220,7 +220,7 @@ struct BoundFunction: FunctionObject {
     static const ManagedVTable static_vtbl;
     static void destroy(Managed *);
     static void markObjects(Managed *that);
-    static bool hasInstance(Managed *that, ExecutionContext *ctx, const Value &value);
+    static bool hasInstance(Managed *that, const Value &value);
 };
 
 }
index ca81d50..f582c25 100644 (file)
@@ -171,9 +171,9 @@ QString Managed::className() const
     return QString::fromLatin1(s);
 }
 
-bool Managed::hasInstance(Managed *, ExecutionContext *ctx, const Value &)
+bool Managed::hasInstance(Managed *m, const Value &)
 {
-    ctx->throwTypeError();
+    m->engine()->current->throwTypeError();
 }
 
 Value Managed::construct(Managed *, ExecutionContext *context, Value *, int)
index 74efc76..530f469 100644 (file)
@@ -104,7 +104,7 @@ struct ManagedVTable
     void (*markObjects)(Managed *);
     void (*destroy)(Managed *);
     void (*collectDeletables)(Managed *, GCDeletable **deletable);
-    bool (*hasInstance)(Managed *, ExecutionContext *ctx, const Value &value);
+    bool (*hasInstance)(Managed *, const Value &value);
     Value (*get)(Managed *, ExecutionContext *ctx, String *name, bool *hasProperty);
     Value (*getIndexed)(Managed *, ExecutionContext *ctx, uint index, bool *hasProperty);
     void (*put)(Managed *, ExecutionContext *ctx, String *name, const Value &value);
@@ -257,8 +257,8 @@ public:
         *reinterpret_cast<Managed **>(this) = m;
     }
 
-    inline bool hasInstance(ExecutionContext *ctx, const Value &v) {
-        return vtbl->hasInstance(this, ctx, v);
+    inline bool hasInstance(const Value &v) {
+        return vtbl->hasInstance(this, v);
     }
     Value construct(ExecutionContext *context, Value *args, int argc);
     Value call(ExecutionContext *context, const Value &thisObject, Value *args, int argc);
@@ -288,7 +288,7 @@ public:
     { return vtbl->advanceIterator(this, it, name, index, attributes); }
 
     static void destroy(Managed *that) { that->_data = 0; }
-    static bool hasInstance(Managed *that, ExecutionContext *ctx, const Value &value);
+    static bool hasInstance(Managed *that, const Value &value);
     static Value construct(Managed *, ExecutionContext *context, Value *, int);
     static Value call(Managed *, ExecutionContext *, const Value &, Value *, int);
     static void getLookup(Managed *, ExecutionContext *context, Lookup *, Value *);
index f3cbd89..c47be00 100644 (file)
@@ -209,7 +209,7 @@ void __qmljs_instanceof(ExecutionContext *ctx, Value *result, const Value &left,
     if (!o)
         ctx->throwTypeError();
 
-    bool r = o->hasInstance(ctx, left);
+    bool r = o->hasInstance(left);
     *result = Value::fromBoolean(r);
 }