}
#ifndef V4_BOOTSTRAP
-ReturnedValue Runtime::callGlobalLookup(ExecutionContext *context, uint index, CallDataRef callData)
+ReturnedValue Runtime::callGlobalLookup(ExecutionContext *context, uint index, CallData *callData)
{
Scope scope(context);
Q_ASSERT(callData->thisObject.isUndefined());
}
-ReturnedValue Runtime::callActivationProperty(ExecutionContext *context, String *name, CallDataRef callData)
+ReturnedValue Runtime::callActivationProperty(ExecutionContext *context, String *name, CallData *callData)
{
Q_ASSERT(callData->thisObject.isUndefined());
Scope scope(context);
return o->call(callData);
}
-ReturnedValue Runtime::callProperty(ExecutionContext *context, String *name, CallDataRef callData)
+ReturnedValue Runtime::callProperty(ExecutionContext *context, String *name, CallData *callData)
{
Scope scope(context);
Scoped<Object> baseObject(scope, callData->thisObject);
return o->call(callData);
}
-ReturnedValue Runtime::callPropertyLookup(ExecutionContext *context, uint index, CallDataRef callData)
+ReturnedValue Runtime::callPropertyLookup(ExecutionContext *context, uint index, CallData *callData)
{
Lookup *l = context->d()->lookups + index;
Value v;
return v.objectValue()->call(callData);
}
-ReturnedValue Runtime::callElement(ExecutionContext *context, const ValueRef index, CallDataRef callData)
+ReturnedValue Runtime::callElement(ExecutionContext *context, const ValueRef index, CallData *callData)
{
Scope scope(context);
ScopedObject baseObject(scope, callData->thisObject.toObject(context));
return o->call(callData);
}
-ReturnedValue Runtime::callValue(ExecutionContext *context, const ValueRef func, CallDataRef callData)
+ReturnedValue Runtime::callValue(ExecutionContext *context, const ValueRef func, CallData *callData)
{
if (!func->isObject())
return context->throwTypeError();
}
-ReturnedValue Runtime::constructGlobalLookup(ExecutionContext *context, uint index, CallDataRef callData)
+ReturnedValue Runtime::constructGlobalLookup(ExecutionContext *context, uint index, CallData *callData)
{
Scope scope(context);
Q_ASSERT(callData->thisObject.isUndefined());
}
-ReturnedValue Runtime::constructActivationProperty(ExecutionContext *context, String *name, CallDataRef callData)
+ReturnedValue Runtime::constructActivationProperty(ExecutionContext *context, String *name, CallData *callData)
{
Scope scope(context);
ScopedValue func(scope, context->getProperty(name));
return f->construct(callData);
}
-ReturnedValue Runtime::constructValue(ExecutionContext *context, const ValueRef func, CallDataRef callData)
+ReturnedValue Runtime::constructValue(ExecutionContext *context, const ValueRef func, CallData *callData)
{
Object *f = func->asObject();
if (!f)
return f->construct(callData);
}
-ReturnedValue Runtime::constructProperty(ExecutionContext *context, String *name, CallDataRef callData)
+ReturnedValue Runtime::constructProperty(ExecutionContext *context, String *name, CallData *callData)
{
Scope scope(context);
ScopedObject thisObject(scope, callData->thisObject.toObject(context));
return f->construct(callData);
}
-ReturnedValue Runtime::constructPropertyLookup(ExecutionContext *context, uint index, CallDataRef callData)
+ReturnedValue Runtime::constructPropertyLookup(ExecutionContext *context, uint index, CallData *callData)
{
Lookup *l = context->d()->lookups + index;
Value v;
struct Q_QML_PRIVATE_EXPORT Runtime {
// call
- static ReturnedValue callGlobalLookup(ExecutionContext *context, uint index, CallDataRef callData);
- static ReturnedValue callActivationProperty(ExecutionContext *, String *name, CallDataRef callData);
- static ReturnedValue callProperty(ExecutionContext *context, String *name, CallDataRef callData);
- static ReturnedValue callPropertyLookup(ExecutionContext *context, uint index, CallDataRef callData);
- static ReturnedValue callElement(ExecutionContext *context, const ValueRef index, CallDataRef callData);
- static ReturnedValue callValue(ExecutionContext *context, const ValueRef func, CallDataRef callData);
+ static ReturnedValue callGlobalLookup(ExecutionContext *context, uint index, CallData *callData);
+ static ReturnedValue callActivationProperty(ExecutionContext *, String *name, CallData *callData);
+ static ReturnedValue callProperty(ExecutionContext *context, String *name, CallData *callData);
+ static ReturnedValue callPropertyLookup(ExecutionContext *context, uint index, CallData *callData);
+ static ReturnedValue callElement(ExecutionContext *context, const ValueRef index, CallData *callData);
+ static ReturnedValue callValue(ExecutionContext *context, const ValueRef func, CallData *callData);
// construct
- static ReturnedValue constructGlobalLookup(ExecutionContext *context, uint index, CallDataRef callData);
- static ReturnedValue constructActivationProperty(ExecutionContext *, String *name, CallDataRef callData);
- static ReturnedValue constructProperty(ExecutionContext *context, String *name, CallDataRef callData);
- static ReturnedValue constructPropertyLookup(ExecutionContext *context, uint index, CallDataRef callData);
- static ReturnedValue constructValue(ExecutionContext *context, const ValueRef func, CallDataRef callData);
+ static ReturnedValue constructGlobalLookup(ExecutionContext *context, uint index, CallData *callData);
+ static ReturnedValue constructActivationProperty(ExecutionContext *, String *name, CallData *callData);
+ static ReturnedValue constructProperty(ExecutionContext *context, String *name, CallData *callData);
+ static ReturnedValue constructPropertyLookup(ExecutionContext *context, uint index, CallData *callData);
+ static ReturnedValue constructValue(ExecutionContext *context, const ValueRef func, CallData *callData);
// set & get
static void setActivationProperty(ExecutionContext *ctx, String *name, const ValueRef value);
return *this;
}
-struct CallDataRef {
- CallDataRef(const ScopedCallData &c)
- : ptr(c.ptr) {}
- CallDataRef(CallData *v) { ptr = v; }
- // Important: Do NOT add a copy constructor to this class
- // adding a copy constructor actually changes the calling convention, ie.
- // is not even binary compatible. Adding it would break assumptions made
- // in the jit'ed code.
- CallDataRef &operator=(const ScopedCallData &c)
- { *ptr = *c.ptr; return *this; }
- CallDataRef &operator=(const CallDataRef &o)
- { *ptr = *o.ptr; return *this; }
-
- operator const CallData *() const {
- return ptr;
- }
- const CallData *operator->() const {
- return ptr;
- }
-
- operator CallData *() {
- return ptr;
- }
- CallData *operator->() {
- return ptr;
- }
-
-private:
- CallData *ptr;
-};
-
-
template <typename T>
inline Value &Value::operator=(Returned<T> *t)
{