From c4d306245982f5b272b80d8709943697a713b336 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Mon, 19 Mar 2012 21:17:57 +0100 Subject: [PATCH] Make the SharedClosure implementation a bit less horrible. --- ext/libclementine-common/core/closure.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ext/libclementine-common/core/closure.h b/ext/libclementine-common/core/closure.h index 68409cfab..50659b473 100644 --- a/ext/libclementine-common/core/closure.h +++ b/ext/libclementine-common/core/closure.h @@ -84,7 +84,7 @@ class Closure : public QObject, boost::noncopyable { class SharedPointerWrapper { public: virtual ~SharedPointerWrapper() {} - virtual void* data() const = 0; + virtual QObject* data() const = 0; }; template @@ -93,9 +93,11 @@ class SharedPointer : public SharedPointerWrapper { SharedPointer(QSharedPointer ptr) : ptr_(ptr) { } - void* data() const { + + QObject* data() const { return ptr_.data(); } + private: QSharedPointer ptr_; }; @@ -111,7 +113,7 @@ class SharedClosure : public Closure { const ClosureArgumentWrapper* val1 = 0, const ClosureArgumentWrapper* val2 = 0, const ClosureArgumentWrapper* val3 = 0) - : Closure(reinterpret_cast(sender->data()), signal, + : Closure(sender->data(), signal, receiver, slot, val0, val1, val2, val3), shared_sender_(sender) {