# HG changeset patch # User eldar1@eldar1-laptop # Date 1264204747 0 # Node ID 1defd6a9836477ce782432610f38efc632d0af7b # Parent 115130499d78589aa740913c7ed7339ff28963c5 Make static constructors shared. Requires new dmd. Remove irrelevant junk diff -r 115130499d78 -r 1defd6a98364 build/gui.txt --- a/build/gui.txt Sat Jan 16 12:20:50 2010 +0000 +++ b/build/gui.txt Fri Jan 22 23:59:07 2010 +0000 @@ -1,10 +1,4 @@ set(required Core) -qt4_generate_moc(cpp/qt_gui/UrlHandler_shell.h - ${CMAKE_BINARY_DIR}/cpp/qt_gui/UrlHandler_shell_moc.cpp - ) -set (cpp_files qt_gui/UrlHandler_shell ) -set (cpp_generated_files qt_gui/UrlHandler_shell_moc) -#set (d_files gui/UrlHandler) set(classes QPushButton QFileIconProvider diff -r 115130499d78 -r 1defd6a98364 cpp/qt_gui/UrlHandler_shell.cpp --- a/cpp/qt_gui/UrlHandler_shell.cpp Sat Jan 16 12:20:50 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -#include "UrlHandler_shell.h" - -#include "qtd_core.h" - -UrlHandler::UrlHandler(void *d_ptr, QObject* parent0) - : QObject(parent0), - QtD_QObjectEntity(this, d_ptr) -{ -} - -#ifdef CPP_SHARED -extern "C" typedef void (*pfqtd_UrlHandler_handleUrl_QUrl_dispatch)(void *dId, void* arg__1); -pfqtd_UrlHandler_handleUrl_QUrl_dispatch qtd_UrlHandler_handleUrl_QUrl_dispatch; -#else -extern "C" void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *dId, void* name1); -#endif -void UrlHandler::handleUrl(const QUrl &url) -{ - qtd_UrlHandler_handleUrl_QUrl_dispatch(this->dId, &(QUrl& )url); -} - -extern "C" DLL_PUBLIC void qtd_UrlHandler_destructor(void *ptr) -{ - delete (UrlHandler *)ptr; -} - -extern "C" DLL_PUBLIC void* qtd_UrlHandler_UrlHandler_QObject -(void *d_ptr, - void* parent0) -{ - QObject* __qt_parent0 = (QObject* ) parent0; - UrlHandler *__qt_this = new UrlHandler(d_ptr, (QObject* )__qt_parent0); - return (void *) __qt_this; -} - -#ifdef CPP_SHARED -extern "C" DLL_PUBLIC void qtd_UrlHandler_initCallBacks(pfunc_abstr *virts, pfunc_abstr qobj_del) { - qtd_UrlHandler_handleUrl_QUrl_dispatch = (pfqtd_UrlHandler_handleUrl_QUrl_dispatch) virts[0]; -// qtd_D_QWidget_delete = (qtd_pf_D_QWidget_delete)qobj_del; -} -#endif diff -r 115130499d78 -r 1defd6a98364 cpp/qt_gui/UrlHandler_shell.h --- a/cpp/qt_gui/UrlHandler_shell.h Sat Jan 16 12:20:50 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#include -#include - -class UrlHandler : public QObject, public QtD_QObjectEntity -{ - Q_OBJECT - -public: - UrlHandler(void *d_ptr, QObject *parent = 0); - -public slots: - void handleUrl(const QUrl &url); -}; diff -r 115130499d78 -r 1defd6a98364 generator/dgenerator.cpp --- a/generator/dgenerator.cpp Sat Jan 16 12:20:50 2010 +0000 +++ b/generator/dgenerator.cpp Fri Jan 22 23:59:07 2010 +0000 @@ -1857,7 +1857,7 @@ { auxFile.isDone = false; auxFile.stream << "extern(C) void static_init_" << d_class->name() << "();" << endl; - auxFile.stream << "static this() { static_init_" << d_class->name() << "; }" << endl << endl; + auxFile.stream << "shared static this() { static_init_" << d_class->name() << "; }" << endl << endl; } if (m_docs_enabled) { @@ -2743,7 +2743,7 @@ << " return qtd_" << d_class->name() << "_qt_metacall(__nativeId, _c, _id, _a);" << endl << " }" << endl << endl; - s << " private static QMetaObject _staticMetaObject;" << endl + s << " private static __gshared QMetaObject _staticMetaObject;" << endl << " protected static void createStaticMetaObject() {" << endl << " assert(!_staticMetaObject);" << endl << " QMetaObject base;" << endl; diff -r 115130499d78 -r 1defd6a98364 qt/gui/UrlHandler.d --- a/qt/gui/UrlHandler.d Sat Jan 16 12:20:50 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -module qt.gui.UrlHandler; - -import qt.core.QUrl; - -alias void delegate(QUrl) UrlHandlerDg; - -package class UrlHandler : QObject { - public this(UrlHandlerDg dg) { - if (!init_flag_UrlHandler) - static_init_UrlHandler(); - - _dg = dg; - void* __qt_return_value = qtd_UrlHandler_UrlHandler_QObject(cast(void*) this, null); - this(__qt_return_value, true); - } - - void handleUrl(QUrl url) { - _dg(url); - } - - private UrlHandlerDg _dg; - - public this(void* native_id, bool gc_managed) { - super(native_id, gc_managed); - } - - - protected void __free_native_resources() { - qtd_UrlHandler_destructor(nativeId()); - } - - void __set_native_ownership(bool ownership_) { - __no_real_delete = ownership_; - } -} -extern (C) void qtd_UrlHandler_destructor(void *ptr); - -private extern(C) void* qtd_UrlHandler_UrlHandler_QObject(void *d_ptr, - void* parent0); - -private extern(C) void qtd_UrlHandler_handleUrl_QUrl_dispatch(void *d_entity, void* name1) -{ - auto d_object = cast(UrlHandler) d_entity; - scope name1_d_ref = new QUrl(name1, true); - d_object.handleUrl(name1_d_ref); -} - -private extern (C) void qtd_UrlHandler_initCallBacks(void* virtuals, void* qobj_del); - -private bool init_flag_UrlHandler = false; -void static_init_UrlHandler() { - init_flag_UrlHandler = true; - - void*[1] virt_arr; - virt_arr[0] = &qtd_UrlHandler_handleUrl_QUrl_dispatch; - -// void *qobj_del; -// qobj_del = &qtd_D_QWidget_delete; - qtd_UrlHandler_initCallBacks(virt_arr.ptr, null); -} diff -r 115130499d78 -r 1defd6a98364 qt/qtd/MOC.d --- a/qt/qtd/MOC.d Sat Jan 16 12:20:50 2010 +0000 +++ b/qt/qtd/MOC.d Fri Jan 22 23:59:07 2010 +0000 @@ -458,15 +458,15 @@ { string res; res ~= " - public QMetaObject metaObject() + public QMetaObject metaObject() { return staticMetaObject(); } + private static __gshared QMetaObject _staticMetaObject; + private static __gshared QMetaObjectNative _nativeStaticMetaObject; + public static QMetaObject staticMetaObject() { if(!_staticMetaObject) createStaticMetaObject(); - return staticMetaObject(); + return _staticMetaObject; } - private static __gshared QMetaObject _staticMetaObject; - private static __gshared QMetaObjectNative _nativeStaticMetaObject; - public static QMetaObject staticMetaObject() { return _staticMetaObject; } protected static void createStaticMetaObject() { assert(!_staticMetaObject); alias BaseClassesTuple!(typeof(this))[0] BaseClass;