Remove some unneeded reinterpret_cast's
authorLars Knoll <lars.knoll@digia.com>
Thu, 24 Jul 2014 20:32:38 +0000 (22:32 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Tue, 4 Nov 2014 19:16:58 +0000 (20:16 +0100)
Change-Id: I29ebc1f06bb3f0d20e6e21840c7fe326a0f4546d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4mm.cpp
src/qml/jsruntime/qv4regexp.cpp
src/qml/jsruntime/qv4regexp_p.h
src/qml/jsruntime/qv4regexpobject.cpp
src/qml/jsruntime/qv4value_p.h

index 8f9f8cc..7393041 100644 (file)
@@ -48,7 +48,7 @@ DEFINE_MANAGED_VTABLE(CallContext);
 DEFINE_MANAGED_VTABLE(WithContext);
 DEFINE_MANAGED_VTABLE(GlobalContext);
 
-Returned<ExecutionContext> *ExecutionContext::newCallContext(FunctionObject *function, CallData *callData)
+Returned<CallContext> *ExecutionContext::newCallContext(FunctionObject *function, CallData *callData)
 {
     Q_ASSERT(function->function());
 
@@ -78,7 +78,7 @@ Returned<ExecutionContext> *ExecutionContext::newCallContext(FunctionObject *fun
         std::fill(c->callData->args + c->callData->argc, c->callData->args + compiledFunction->nFormals, Primitive::undefinedValue());
     c->callData->argc = qMax((uint)callData->argc, compiledFunction->nFormals);
 
-    return Returned<ExecutionContext>::create(c);
+    return Returned<CallContext>::create(c);
 }
 
 Returned<WithContext> *ExecutionContext::newWithContext(Object *with)
index 4f7cdd8..b4c78c3 100644 (file)
@@ -127,7 +127,7 @@ struct Q_QML_EXPORT ExecutionContext : public Managed
         engine->current = this;
     }
 
-    Returned<ExecutionContext> *newCallContext(FunctionObject *f, CallData *callData);
+    Returned<CallContext> *newCallContext(FunctionObject *f, CallData *callData);
     Returned<WithContext> *newWithContext(Object *with);
     Returned<CatchContext> *newCatchContext(String *exceptionVarName, const ValueRef exceptionValue);
     Returned<CallContext> *newQmlContext(FunctionObject *f, Object *qml);
index ea87ff1..275b1c0 100644 (file)
@@ -372,7 +372,7 @@ ReturnedValue ScriptFunction::construct(Managed *that, CallData *callData)
 
     ExecutionContext *context = v4->currentContext();
     callData->thisObject = obj.asReturnedValue();
-    ExecutionContext *ctx = reinterpret_cast<ExecutionContext *>(context->newCallContext(f.getPointer(), callData));
+    Scoped<CallContext> ctx(scope, context->newCallContext(f.getPointer(), callData));
 
     ExecutionContextSaver ctxSaver(context);
     ScopedValue result(scope, Q_V4_PROFILE(v4, ctx, f->function()));
@@ -399,7 +399,7 @@ ReturnedValue ScriptFunction::call(Managed *that, CallData *callData)
     ExecutionContext *context = v4->currentContext();
     Scope scope(context);
 
-    CallContext *ctx = reinterpret_cast<CallContext *>(context->newCallContext(f, callData));
+    Scoped<CallContext> ctx(scope, context->newCallContext(f, callData));
 
     ExecutionContextSaver ctxSaver(context);
     ScopedValue result(scope, Q_V4_PROFILE(v4, ctx, f->function()));
index 3877dde..8174fa9 100644 (file)
@@ -492,9 +492,9 @@ size_t MemoryManager::getUsedMem() const
         char *chunkStart = reinterpret_cast<char *>(i->memory.base());
         char *chunkEnd = chunkStart + i->memory.size() - i->chunkSize;
         for (char *chunk = chunkStart; chunk <= chunkEnd; chunk += i->chunkSize) {
-            Managed *m = reinterpret_cast<Managed *>(chunk);
+            Managed::Data *m = reinterpret_cast<Managed::Data *>(chunk);
             Q_ASSERT((qintptr) chunk % 16 == 0);
-            if (m->inUse())
+            if (m->inUse)
                 usedMem += i->chunkSize;
         }
     }
index ed67289..4c33424 100644 (file)
@@ -63,14 +63,14 @@ uint RegExp::match(const QString &string, int start, uint *matchOffsets)
     return JSC::Yarr::interpret(byteCode().get(), s.characters16(), string.length(), start, matchOffsets);
 }
 
-RegExp* RegExp::create(ExecutionEngine* engine, const QString& pattern, bool ignoreCase, bool multiline)
+Returned<RegExp> *RegExp::create(ExecutionEngine* engine, const QString& pattern, bool ignoreCase, bool multiline)
 {
     RegExpCacheKey key(pattern, ignoreCase, multiline);
 
     RegExpCache *cache = engine->regExpCache;
     if (cache) {
         if (RegExp *result = cache->value(key))
-            return result;
+            return Returned<RegExp>::create(result);
     }
 
     Scope scope(engine);
@@ -82,7 +82,7 @@ RegExp* RegExp::create(ExecutionEngine* engine, const QString& pattern, bool ign
     result->d()->cache = cache;
     cache->insert(key, result);
 
-    return result;
+    return result.asReturned();
 }
 
 RegExp::Data::Data(ExecutionEngine* engine, const QString &pattern, bool ignoreCase, bool multiline)
index e2f43bf..a46dd98 100644 (file)
@@ -85,7 +85,7 @@ struct RegExp : public Managed
     bool ignoreCase() const { return d()->ignoreCase; }
     bool multiLine() const { return d()->multiLine; }
 
-    static RegExp* create(ExecutionEngine* engine, const QString& pattern, bool ignoreCase = false, bool multiline = false);
+    static Returned<RegExp> *create(ExecutionEngine* engine, const QString& pattern, bool ignoreCase = false, bool multiline = false);
 
     bool isValid() const { return d()->byteCode.get(); }
 
index c481752..f177178 100644 (file)
@@ -71,7 +71,7 @@ RegExpObject::Data::Data(InternalClass *ic)
 
     Scope scope(ic->engine);
     Scoped<RegExpObject> o(scope, this);
-    o->d()->value = reinterpret_cast<RegExp *>(RegExp::create(ic->engine, QString(), false, false));
+    o->d()->value = RegExp::create(ic->engine, QString(), false, false)->getPointer();
     o->d()->global = false;
     o->init(ic->engine);
 }
@@ -139,7 +139,7 @@ RegExpObject::Data::Data(ExecutionEngine *engine, const QRegExp &re)
     Scope scope(engine);
     Scoped<RegExpObject> o(scope, this);
 
-    o->d()->value = reinterpret_cast<RegExp *>(RegExp::create(engine, pattern, re.caseSensitivity() == Qt::CaseInsensitive, false));
+    o->d()->value = RegExp::create(engine, pattern, re.caseSensitivity() == Qt::CaseInsensitive, false)->getPointer();
 
     o->init(engine);
 }
@@ -286,7 +286,7 @@ ReturnedValue RegExpCtor::construct(Managed *m, CallData *callData)
         }
     }
 
-    RegExp *regexp = reinterpret_cast<RegExp *>(RegExp::create(ctx->d()->engine, pattern, ignoreCase, multiLine));
+    Scoped<RegExp> regexp(scope, RegExp::create(ctx->d()->engine, pattern, ignoreCase, multiLine));
     if (!regexp->isValid())
         return ctx->throwSyntaxError(QStringLiteral("Invalid regular expression"));
 
index e87a900..2180fbc 100644 (file)
@@ -549,7 +549,7 @@ struct ValueRef {
     ReturnedValue asReturnedValue() const { return ptr->val; }
 
     // ### get rid of this one!
-    ValueRef(Value *v) { ptr = reinterpret_cast<Value *>(v); }
+    ValueRef(Value *v) { ptr = v; }
 private:
     Value *ptr;
 };