diff d2/qtd/QtdObject.d @ 357:9784459f0750

An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables Q_CLASSINFO implementation Now Qtd can be built on Windows
author Max Samukha <maxter@spambox.com>
date Wed, 02 Jun 2010 19:38:05 +0300
parents 18bd68f586c6
children a032df77b6ab
line wrap: on
line diff
--- a/d2/qtd/QtdObject.d	Tue May 25 20:14:04 2010 +0300
+++ b/d2/qtd/QtdObject.d	Wed Jun 02 19:38:05 2010 +0300
@@ -10,6 +10,7 @@
 */
 
 module qtd.QtdObject;
+import qtd.Core;
 
 enum QtdObjectFlags : ubyte
 {
@@ -61,14 +62,14 @@
     }
 }
 
-extern(C) void qtd_QtdObject_delete(void* dId)
-{
-    auto obj = cast(QtdObject)dId;
+mixin(qtdExport("void", "QtdObject_delete", "void* dId",
+    q{
+        auto obj = cast(QtdObject)dId;
 
-    if (!(obj.__flags & QtdObjectFlags.dOwnership))
-    {
-        // Avoid deleting native object twice
-        obj.__setFlags(QtdObjectFlags.nativeOwnership, true);
-        delete obj;
-    }
-}
+        if (!(obj.__flags & QtdObjectFlags.dOwnership))
+        {
+            // Avoid deleting native object twice
+            obj.__setFlags(QtdObjectFlags.nativeOwnership, true);
+            delete obj;
+        }
+    }));