Remove another virtual
authorLars Knoll <lars.knoll@digia.com>
Thu, 14 Feb 2013 13:18:34 +0000 (14:18 +0100)
committerSimon Hausmann <simon.hausmann@digia.com>
Thu, 14 Feb 2013 13:57:28 +0000 (14:57 +0100)
Change-Id: I185be24d4c09d2078c3459460875c4711bf17ddb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/v4/qv4errorobject.h

index 2be3242..ae132a9 100644 (file)
@@ -49,6 +49,8 @@ QT_BEGIN_NAMESPACE
 namespace QQmlJS {
 namespace VM {
 
+struct SyntaxErrorObject;
+
 struct ErrorObject: Object {
     enum ErrorType {
         Error,
@@ -62,7 +64,7 @@ struct ErrorObject: Object {
 
     ErrorObject(ExecutionEngine* engine, const Value &message);
 
-    virtual struct SyntaxErrorObject *asSyntaxError() { return 0; }
+    SyntaxErrorObject *asSyntaxError();
 
 protected:
     void setNameProperty(ExecutionContext *ctx);
@@ -86,7 +88,6 @@ struct SyntaxErrorObject: ErrorObject {
     SyntaxErrorObject(ExecutionContext *ctx, DiagnosticMessage *msg);
     ~SyntaxErrorObject() { delete msg; }
 
-    virtual SyntaxErrorObject *asSyntaxError() { return this; }
     DiagnosticMessage *message() { return msg; }
 
 private:
@@ -221,6 +222,11 @@ struct URIErrorPrototype: URIErrorObject
 };
 
 
+inline SyntaxErrorObject *ErrorObject::asSyntaxError()
+{
+    return subtype == SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0;
+}
+
 } // end of namespace VM
 } // end of namespace QQmlJS