X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsyncableobject.h;h=af9dfdd29cd487fe1841d96a958816e338de981c;hb=08b63f9c94aa33200d9373eadad13c130c3095b4;hp=08bd2e3096d12735f271666b385edeae9418729c;hpb=e50ae7a06fc4e5d3a911c361d30953410deab609;p=quassel.git diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 08bd2e30..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); @@ -76,7 +79,7 @@ public: virtual bool isInitialized() const; - virtual const QMetaObject *syncMetaObject() const { return metaObject(); }; + virtual const QMetaObject *syncMetaObject() const { return metaObject(); } inline void setAllowClientUpdates(bool allow) { _allowClientUpdates = allow; } inline bool allowClientUpdates() const { return _allowClientUpdates; }