diff --git a/libraries/networking/src/PacketReceiver.cpp b/libraries/networking/src/PacketReceiver.cpp index 80222d38a9..c13fb8566b 100644 --- a/libraries/networking/src/PacketReceiver.cpp +++ b/libraries/networking/src/PacketReceiver.cpp @@ -27,8 +27,9 @@ PacketReceiver::PacketReceiver(QObject* parent) : QObject(parent) { } bool PacketReceiver::ListenerReference::invokeWithQt(const QSharedPointer& receivedMessagePointer, const QSharedPointer& sourceNode) { + ListenerReferencePointer thisPointer = sharedFromThis(); return QMetaObject::invokeMethod(getObject(), [=]() { - this->invokeDirectly(receivedMessagePointer, sourceNode); + thisPointer->invokeDirectly(receivedMessagePointer, sourceNode); }); } diff --git a/libraries/networking/src/PacketReceiver.h b/libraries/networking/src/PacketReceiver.h index 0bed88cff9..071638cda9 100644 --- a/libraries/networking/src/PacketReceiver.h +++ b/libraries/networking/src/PacketReceiver.h @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include "NLPacket.h" #include "NLPacketList.h" @@ -42,7 +44,7 @@ namespace std { class PacketReceiver : public QObject { Q_OBJECT public: - class ListenerReference { + class ListenerReference : public QEnableSharedFromThis { public: virtual bool invokeDirectly(const QSharedPointer& receivedMessagePointer, const QSharedPointer& sourceNode) = 0; bool invokeWithQt(const QSharedPointer& receivedMessagePointer, const QSharedPointer& sourceNode);