diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-11-06 17:04:39 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-08 23:26:50 +0100 |
commit | 34fa0f8fec639444bd6ba2091b6f6623128471ce (patch) | |
tree | 3b9bb3f9189f995d6ed9bb547531d45d65d3a91a /src | |
parent | 04bf728d7d02c56f9f526bf0b71b31690a5e9e92 (diff) |
Move Data of error objects into the Heap namespace
Change-Id: I893095107eaadf38959a4e489d92ef66b2f9e81d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jsruntime/qv4errorobject.cpp | 110 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4errorobject_p.h | 157 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4managed.cpp | 16 |
3 files changed, 153 insertions, 130 deletions
diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp index 9bd6597a6d..749cf32d35 100644 --- a/src/qml/jsruntime/qv4errorobject.cpp +++ b/src/qml/jsruntime/qv4errorobject.cpp @@ -63,25 +63,25 @@ using namespace QV4; -ErrorObject::Data::Data(InternalClass *ic) +Heap::ErrorObject::ErrorObject(InternalClass *ic) : Heap::Object(ic) { Scope scope(ic->engine); - Scoped<ErrorObject> e(scope, this); + Scoped<QV4::ErrorObject> e(scope, this); ScopedString s(scope, scope.engine->newString(QStringLiteral("Error"))); e->defineDefaultProperty(QStringLiteral("name"), s); } -ErrorObject::Data::Data(InternalClass *ic, const ValueRef message, ErrorType t) +Heap::ErrorObject::ErrorObject(InternalClass *ic, const ValueRef message, ErrorType t) : Heap::Object(ic) { subtype = t; Scope scope(ic->engine); - Scoped<ErrorObject> e(scope, this); + Scoped<QV4::ErrorObject> e(scope, this); - e->defineAccessorProperty(QStringLiteral("stack"), ErrorObject::method_get_stack, 0); + e->defineAccessorProperty(QStringLiteral("stack"), QV4::ErrorObject::method_get_stack, 0); if (!message->isUndefined()) e->defineDefaultProperty(QStringLiteral("message"), message); @@ -95,16 +95,16 @@ ErrorObject::Data::Data(InternalClass *ic, const ValueRef message, ErrorType t) } } -ErrorObject::Data::Data(InternalClass *ic, const QString &message, ErrorObject::ErrorType t) +Heap::ErrorObject::ErrorObject(InternalClass *ic, const QString &message, ErrorObject::ErrorType t) : Heap::Object(ic) { subtype = t; Scope scope(ic->engine); - Scoped<ErrorObject> e(scope, this); + Scoped<QV4::ErrorObject> e(scope, this); ScopedString s(scope); - e->defineAccessorProperty(QStringLiteral("stack"), ErrorObject::method_get_stack, 0); + e->defineAccessorProperty(QStringLiteral("stack"), QV4::ErrorObject::method_get_stack, 0); ScopedValue v(scope, scope.engine->newString(message)); e->defineDefaultProperty(QStringLiteral("message"), v); @@ -117,16 +117,16 @@ ErrorObject::Data::Data(InternalClass *ic, const QString &message, ErrorObject:: } } -ErrorObject::Data::Data(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorObject::ErrorType t) +Heap::ErrorObject::ErrorObject(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorObject::ErrorType t) : Heap::Object(ic) { subtype = t; Scope scope(ic->engine); - Scoped<ErrorObject> e(scope, this); + Scoped<QV4::ErrorObject> e(scope, this); ScopedString s(scope); - e->defineAccessorProperty(QStringLiteral("stack"), ErrorObject::method_get_stack, 0); + e->defineAccessorProperty(QStringLiteral("stack"), QV4::ErrorObject::method_get_stack, 0); e->defineDefaultProperty(QStringLiteral("name"), (s = scope.engine->newString(e->className()))); e->d()->stackTrace = scope.engine->stackTrace(); @@ -182,58 +182,58 @@ DEFINE_OBJECT_VTABLE(ErrorObject); DEFINE_OBJECT_VTABLE(SyntaxErrorObject); -SyntaxErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef msg) - : ErrorObject::Data(engine->syntaxErrorClass, msg, SyntaxError) +Heap::SyntaxErrorObject::SyntaxErrorObject(ExecutionEngine *engine, const ValueRef msg) + : Heap::ErrorObject(engine->syntaxErrorClass, msg, SyntaxError) { } -SyntaxErrorObject::Data::Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber) - : ErrorObject::Data(engine->syntaxErrorClass, msg, fileName, lineNumber, columnNumber, SyntaxError) +Heap::SyntaxErrorObject::SyntaxErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber) + : Heap::ErrorObject(engine->syntaxErrorClass, msg, fileName, lineNumber, columnNumber, SyntaxError) { } -EvalErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef message) - : ErrorObject::Data(engine->evalErrorClass, message, EvalError) +Heap::EvalErrorObject::EvalErrorObject(ExecutionEngine *engine, const ValueRef message) + : Heap::ErrorObject(engine->evalErrorClass, message, EvalError) { } -RangeErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef message) - : ErrorObject::Data(engine->rangeErrorClass, message, RangeError) +Heap::RangeErrorObject::RangeErrorObject(ExecutionEngine *engine, const ValueRef message) + : Heap::ErrorObject(engine->rangeErrorClass, message, RangeError) { } -RangeErrorObject::Data::Data(ExecutionEngine *engine, const QString &message) - : ErrorObject::Data(engine->rangeErrorClass, message, RangeError) +Heap::RangeErrorObject::RangeErrorObject(ExecutionEngine *engine, const QString &message) + : Heap::ErrorObject(engine->rangeErrorClass, message, RangeError) { } -ReferenceErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef message) - : ErrorObject::Data(engine->referenceErrorClass, message, ReferenceError) +Heap::ReferenceErrorObject::ReferenceErrorObject(ExecutionEngine *engine, const ValueRef message) + : Heap::ErrorObject(engine->referenceErrorClass, message, ReferenceError) { } -ReferenceErrorObject::Data::Data(ExecutionEngine *engine, const QString &message) - : ErrorObject::Data(engine->referenceErrorClass, message, ReferenceError) +Heap::ReferenceErrorObject::ReferenceErrorObject(ExecutionEngine *engine, const QString &message) + : Heap::ErrorObject(engine->referenceErrorClass, message, ReferenceError) { } -ReferenceErrorObject::Data::Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber) - : ErrorObject::Data(engine->referenceErrorClass, msg, fileName, lineNumber, columnNumber, ReferenceError) +Heap::ReferenceErrorObject::ReferenceErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber) + : Heap::ErrorObject(engine->referenceErrorClass, msg, fileName, lineNumber, columnNumber, ReferenceError) { } -TypeErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef message) - : ErrorObject::Data(engine->typeErrorClass, message, TypeError) +Heap::TypeErrorObject::TypeErrorObject(ExecutionEngine *engine, const ValueRef message) + : Heap::ErrorObject(engine->typeErrorClass, message, TypeError) { } -TypeErrorObject::Data::Data(ExecutionEngine *engine, const QString &message) - : ErrorObject::Data(engine->typeErrorClass, message, TypeError) +Heap::TypeErrorObject::TypeErrorObject(ExecutionEngine *engine, const QString &message) + : Heap::ErrorObject(engine->typeErrorClass, message, TypeError) { } -URIErrorObject::Data::Data(ExecutionEngine *engine, const ValueRef message) - : ErrorObject::Data(engine->uriErrorClass, message, URIError) +Heap::URIErrorObject::URIErrorObject(ExecutionEngine *engine, const ValueRef message) + : Heap::ErrorObject(engine->uriErrorClass, message, URIError) { } @@ -245,16 +245,16 @@ DEFINE_OBJECT_VTABLE(SyntaxErrorCtor); DEFINE_OBJECT_VTABLE(TypeErrorCtor); DEFINE_OBJECT_VTABLE(URIErrorCtor); -ErrorCtor::Data::Data(ExecutionContext *scope) +Heap::ErrorCtor::ErrorCtor(QV4::ExecutionContext *scope) : Heap::FunctionObject(scope, QStringLiteral("Error")) { - setVTable(staticVTable()); + setVTable(QV4::ErrorCtor::staticVTable()); } -ErrorCtor::Data::Data(ExecutionContext *scope, const QString &name) +Heap::ErrorCtor::ErrorCtor(QV4::ExecutionContext *scope, const QString &name) : Heap::FunctionObject(scope, name) { - setVTable(staticVTable()); + setVTable(QV4::ErrorCtor::staticVTable()); } ReturnedValue ErrorCtor::construct(Managed *m, CallData *callData) @@ -269,10 +269,10 @@ ReturnedValue ErrorCtor::call(Managed *that, CallData *callData) return static_cast<Object *>(that)->construct(callData); } -EvalErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("EvalError")) +Heap::EvalErrorCtor::EvalErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("EvalError")) { - setVTable(staticVTable()); + setVTable(QV4::EvalErrorCtor::staticVTable()); } ReturnedValue EvalErrorCtor::construct(Managed *m, CallData *callData) @@ -282,10 +282,10 @@ ReturnedValue EvalErrorCtor::construct(Managed *m, CallData *callData) return (m->engine()->memoryManager->alloc<EvalErrorObject>(m->engine(), v))->asReturnedValue(); } -RangeErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("RangeError")) +Heap::RangeErrorCtor::RangeErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("RangeError")) { - setVTable(staticVTable()); + setVTable(QV4::RangeErrorCtor::staticVTable()); } ReturnedValue RangeErrorCtor::construct(Managed *m, CallData *callData) @@ -295,10 +295,10 @@ ReturnedValue RangeErrorCtor::construct(Managed *m, CallData *callData) return (m->engine()->memoryManager->alloc<RangeErrorObject>(scope.engine, v))->asReturnedValue(); } -ReferenceErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("ReferenceError")) +Heap::ReferenceErrorCtor::ReferenceErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("ReferenceError")) { - setVTable(staticVTable()); + setVTable(QV4::ReferenceErrorCtor::staticVTable()); } ReturnedValue ReferenceErrorCtor::construct(Managed *m, CallData *callData) @@ -308,10 +308,10 @@ ReturnedValue ReferenceErrorCtor::construct(Managed *m, CallData *callData) return (m->engine()->memoryManager->alloc<ReferenceErrorObject>(scope.engine, v))->asReturnedValue(); } -SyntaxErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("SyntaxError")) +Heap::SyntaxErrorCtor::SyntaxErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("SyntaxError")) { - setVTable(staticVTable()); + setVTable(QV4::SyntaxErrorCtor::staticVTable()); } ReturnedValue SyntaxErrorCtor::construct(Managed *m, CallData *callData) @@ -321,10 +321,10 @@ ReturnedValue SyntaxErrorCtor::construct(Managed *m, CallData *callData) return (m->engine()->memoryManager->alloc<SyntaxErrorObject>(scope.engine, v))->asReturnedValue(); } -TypeErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("TypeError")) +Heap::TypeErrorCtor::TypeErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("TypeError")) { - setVTable(staticVTable()); + setVTable(QV4::TypeErrorCtor::staticVTable()); } ReturnedValue TypeErrorCtor::construct(Managed *m, CallData *callData) @@ -334,10 +334,10 @@ ReturnedValue TypeErrorCtor::construct(Managed *m, CallData *callData) return (m->engine()->memoryManager->alloc<TypeErrorObject>(scope.engine, v))->asReturnedValue(); } -URIErrorCtor::Data::Data(ExecutionContext *scope) - : ErrorCtor::Data(scope, QStringLiteral("URIError")) +Heap::URIErrorCtor::URIErrorCtor(QV4::ExecutionContext *scope) + : Heap::ErrorCtor(scope, QStringLiteral("URIError")) { - setVTable(staticVTable()); + setVTable(QV4::URIErrorCtor::staticVTable()); } ReturnedValue URIErrorCtor::construct(Managed *m, CallData *callData) diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h index 3d438352aa..71dcecedf8 100644 --- a/src/qml/jsruntime/qv4errorobject_p.h +++ b/src/qml/jsruntime/qv4errorobject_p.h @@ -42,11 +42,9 @@ namespace QV4 { struct SyntaxErrorObject; -struct ErrorObject: Object { - enum { - IsErrorObject = true - }; +namespace Heap { +struct ErrorObject : Object { enum ErrorType { Error, EvalError, @@ -56,15 +54,81 @@ struct ErrorObject: Object { TypeError, URIError }; - struct Data : Heap::Object { - Data(InternalClass *ic); - Data(InternalClass *ic, const ValueRef message, ErrorType t = Error); - Data(InternalClass *ic, const QString &message, ErrorType t = Error); - Data(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorType t = Error); - StackTrace stackTrace; - String *stack; + + ErrorObject(InternalClass *ic); + ErrorObject(InternalClass *ic, const ValueRef message, ErrorType t = Error); + ErrorObject(InternalClass *ic, const QString &message, ErrorType t = Error); + ErrorObject(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorType t = Error); + StackTrace stackTrace; + QV4::String *stack; +}; + +struct EvalErrorObject : ErrorObject { + EvalErrorObject(ExecutionEngine *engine, const ValueRef message); +}; + +struct RangeErrorObject : ErrorObject { + RangeErrorObject(ExecutionEngine *engine, const ValueRef message); + RangeErrorObject(ExecutionEngine *engine, const QString &msg); +}; + +struct ReferenceErrorObject : ErrorObject { + ReferenceErrorObject(ExecutionEngine *engine, const ValueRef message); + ReferenceErrorObject(ExecutionEngine *engine, const QString &msg); + ReferenceErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); +}; + +struct SyntaxErrorObject : ErrorObject { + SyntaxErrorObject(ExecutionEngine *engine, const ValueRef message); + SyntaxErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); +}; + +struct TypeErrorObject : ErrorObject { + TypeErrorObject(ExecutionEngine *engine, const ValueRef message); + TypeErrorObject(ExecutionEngine *engine, const QString &msg); +}; + +struct URIErrorObject : ErrorObject { + URIErrorObject(ExecutionEngine *engine, const ValueRef message); +}; + +struct ErrorCtor : Heap::FunctionObject { + ErrorCtor(QV4::ExecutionContext *scope); + ErrorCtor(QV4::ExecutionContext *scope, const QString &name); +}; + +struct EvalErrorCtor : ErrorCtor { + EvalErrorCtor(QV4::ExecutionContext *scope); +}; + +struct RangeErrorCtor : ErrorCtor { + RangeErrorCtor(QV4::ExecutionContext *scope); +}; + +struct ReferenceErrorCtor : ErrorCtor { + ReferenceErrorCtor(QV4::ExecutionContext *scope); +}; + +struct SyntaxErrorCtor : ErrorCtor { + SyntaxErrorCtor(QV4::ExecutionContext *scope); +}; + +struct TypeErrorCtor : ErrorCtor { + TypeErrorCtor(QV4::ExecutionContext *scope); +}; + +struct URIErrorCtor : ErrorCtor { + URIErrorCtor(QV4::ExecutionContext *scope); +}; + +} + +struct ErrorObject: Object { + enum { + IsErrorObject = true }; - V4_OBJECT(Object) + + V4_OBJECT2(ErrorObject, Object) Q_MANAGED_TYPE(ErrorObject) SyntaxErrorObject *asSyntaxError(); @@ -80,55 +144,32 @@ inline ErrorObject *value_cast(const Value &v) { } struct EvalErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - }; + typedef Heap::EvalErrorObject Data; }; struct RangeErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - }; + typedef Heap::RangeErrorObject Data; }; struct ReferenceErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); - }; + typedef Heap::ReferenceErrorObject Data; }; struct SyntaxErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); - }; - V4_OBJECT(ErrorObject) + V4_OBJECT2(SyntaxErrorObject, ErrorObject) }; struct TypeErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - }; + typedef Heap::TypeErrorObject Data; }; struct URIErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - }; + typedef Heap::URIErrorObject Data; }; struct ErrorCtor: FunctionObject { - struct Data : Heap::FunctionObject { - Data(ExecutionContext *scope); - Data(ExecutionContext *scope, const QString &name); - }; - - V4_OBJECT(FunctionObject) + V4_OBJECT2(ErrorCtor, FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -136,60 +177,42 @@ struct ErrorCtor: FunctionObject struct EvalErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(EvalErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct RangeErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(RangeErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct ReferenceErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(ReferenceErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct SyntaxErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(SyntaxErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct TypeErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(TypeErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct URIErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(URIErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -236,7 +259,7 @@ struct URIErrorPrototype : ErrorObject inline SyntaxErrorObject *ErrorObject::asSyntaxError() { - return subtype() == SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0; + return subtype() == QV4::Heap::ErrorObject::SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0; } } diff --git a/src/qml/jsruntime/qv4managed.cpp b/src/qml/jsruntime/qv4managed.cpp index acaebdfc75..9dc583bbf7 100644 --- a/src/qml/jsruntime/qv4managed.cpp +++ b/src/qml/jsruntime/qv4managed.cpp @@ -100,26 +100,26 @@ QString Managed::className() const s = "RegExp"; break; case Type_ErrorObject: - switch (ErrorObject::ErrorType(subtype())) { - case ErrorObject::Error: + switch (Heap::ErrorObject::ErrorType(subtype())) { + case Heap::ErrorObject::Error: s = "Error"; break; - case ErrorObject::EvalError: + case Heap::ErrorObject::EvalError: s = "EvalError"; break; - case ErrorObject::RangeError: + case Heap::ErrorObject::RangeError: s = "RangeError"; break; - case ErrorObject::ReferenceError: + case Heap::ErrorObject::ReferenceError: s = "ReferenceError"; break; - case ErrorObject::SyntaxError: + case Heap::ErrorObject::SyntaxError: s = "SyntaxError"; break; - case ErrorObject::TypeError: + case Heap::ErrorObject::TypeError: s = "TypeError"; break; - case ErrorObject::URIError: + case Heap::ErrorObject::URIError: s = "URIError"; break; } |