X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsyncableobject.h;h=af9dfdd29cd487fe1841d96a958816e338de981c;hb=68c8697de55e14c7e2474e847a6422e6fe0f65d3;hp=1275cc321a72d053bb715bba63d19b2694e39115;hpb=2d1fe65fdd32e3ac8eab45d1ca649b5566caa7fb;p=quassel.git diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 1275cc32..af9dfdd2 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);