X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsyncableobject.h;fp=src%2Fcommon%2Fsyncableobject.h;h=2ac368bb870a7105efd5b17220d67a0b821f8355;hp=5882d841b721cc1e0696dbc31b93813476a2f886;hb=991142d7dfd2e36f0b30089a223aafda3d9b4409;hpb=0ac7d74296835deb853a39f4804ca7583374751a diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 5882d841..2ac368bb 100644 --- a/src/common/syncableobject.h +++ b/src/common/syncableobject.h @@ -28,12 +28,15 @@ #include "signalproxy.h" -#define SYNCABLE_OBJECT static const int _classNameOffset__; -#define INIT_SYNCABLE_OBJECT(x) const int x ::_classNameOffset__ = QByteArray(staticMetaObject.className()).length() + 2; +#define SYNCABLE_OBJECT static int _classNameOffset__(); +#define INIT_SYNCABLE_OBJECT(x) int x ::_classNameOffset__() {\ + static int offset = QByteArray(x ::staticMetaObject.className()).length() + 2;\ + return offset;\ +}\ #ifdef Q_CC_MSVC -# define SYNC(...) sync_call__(SignalProxy::Server, (__FUNCTION__ + _classNameOffset__), __VA_ARGS__); -# define REQUEST(...) sync_call__(SignalProxy::Client, (__FUNCTION__ + _classNameOffset__), __VA_ARGS__); +# define SYNC(...) sync_call__(SignalProxy::Server, (__FUNCTION__ + _classNameOffset__()), __VA_ARGS__); +# define REQUEST(...) sync_call__(SignalProxy::Client, (__FUNCTION__ + _classNameOffset__()), __VA_ARGS__); #else # define SYNC(...) sync_call__(SignalProxy::Server, __func__, __VA_ARGS__); # define REQUEST(...) sync_call__(SignalProxy::Client, __func__, __VA_ARGS__); @@ -48,7 +51,7 @@ class SyncableObject : public QObject { SYNCABLE_OBJECT - Q_OBJECT + Q_OBJECT public: SyncableObject(QObject *parent = 0);