Fix a bug in the v8 API wrapper
authorLars Knoll <lars.knoll@digia.com>
Mon, 15 Apr 2013 20:45:21 +0000 (22:45 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Mon, 15 Apr 2013 21:02:48 +0000 (23:02 +0200)
This gets us further in the qjsengine autotest.

Change-Id: I911c893b49d34b6ee2226a82dc4bb7f398f57d5a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/qml/qml/v4vm/qv4v8_p.h

index 35fcf5b..7496e16 100644 (file)
@@ -202,6 +202,10 @@ struct HandleOperations
         handle->int_32 = 0;
 #endif
     }
+    static void init(Handle<T> *handle, T *other)
+    {
+        handle->val = *reinterpret_cast<quint64 *>(other);
+    }
 
     static void ref(Handle<T> *)
     {
@@ -245,6 +249,10 @@ struct HandleOperations
         { \
             handle->object = 0; \
         } \
+        static void init(Handle<Type> *handle, Type *obj) \
+        { \
+            handle->object = obj; \
+        } \
     \
         static void ref(Handle<Type> *handle) \
         { \
@@ -288,7 +296,7 @@ struct Handle {
 
     explicit Handle(T *obj)
     {
-        object = obj;
+        HandleOperations<T>::init(this, obj);
         HandleOperations<T>::ref(this);
     }