comparison 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
comparison
equal deleted inserted replaced
356:12cec2d14e1c 357:9784459f0750
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 * 9 *
10 */ 10 */
11 11
12 module qtd.QtdObject; 12 module qtd.QtdObject;
13 import qtd.Core;
13 14
14 enum QtdObjectFlags : ubyte 15 enum QtdObjectFlags : ubyte
15 { 16 {
16 none, 17 none,
17 nativeOwnership = 0x1, 18 nativeOwnership = 0x1,
59 __deleteNative; 60 __deleteNative;
60 } 61 }
61 } 62 }
62 } 63 }
63 64
64 extern(C) void qtd_QtdObject_delete(void* dId) 65 mixin(qtdExport("void", "QtdObject_delete", "void* dId",
65 { 66 q{
66 auto obj = cast(QtdObject)dId; 67 auto obj = cast(QtdObject)dId;
67 68
68 if (!(obj.__flags & QtdObjectFlags.dOwnership)) 69 if (!(obj.__flags & QtdObjectFlags.dOwnership))
69 { 70 {
70 // Avoid deleting native object twice 71 // Avoid deleting native object twice
71 obj.__setFlags(QtdObjectFlags.nativeOwnership, true); 72 obj.__setFlags(QtdObjectFlags.nativeOwnership, true);
72 delete obj; 73 delete obj;
73 } 74 }
74 } 75 }));