@@ -93,7 +93,7 @@ Connection::Connection(Canvas* parent, Iolet* s, Iolet* e, t_outconnect* oc)
9393
9494Connection::~Connection ()
9595{
96- cnv->pd ->unregisterMessageListener (ptr. getRawUnchecked < void >(), this );
96+ cnv->pd ->unregisterMessageListener (this );
9797 cnv->selectedComponents .removeChangeListener (this );
9898
9999 if (outlet) {
@@ -369,14 +369,28 @@ void Connection::popPathState()
369369 updatePath ();
370370}
371371
372+ t_pd* Connection::getTargetObject (t_outconnect* oc)
373+ {
374+ struct _outconnect
375+ {
376+ struct _outconnect *oc_next;
377+ t_pd *oc_to;
378+ t_symbol* oc_path_data;
379+ t_signal* oc_signal;
380+ void * oc_signal_reference;
381+ };
382+
383+ return reinterpret_cast <_outconnect*>(oc)->oc_to ;
384+ }
385+
372386void Connection::setPointer (t_outconnect* newPtr)
373387{
374388 auto originalPointer = ptr.getRawUnchecked <t_outconnect>();
375389 if (originalPointer != newPtr) {
376390 ptr = pd::WeakReference (newPtr, cnv->pd );
377391
378- cnv->pd ->unregisterMessageListener (originalPointer, this );
379- cnv->pd ->registerMessageListener (newPtr, this );
392+ cnv->pd ->unregisterMessageListener (this );
393+ cnv->pd ->registerMessageListener (getTargetObject ( newPtr) , this );
380394 }
381395}
382396
@@ -569,8 +583,8 @@ StringArray Connection::getMessageFormated()
569583 formatedMessage.add (" symbol:" );
570584 formatedMessage.add (args[0 ].toString ());
571585 } else if (name == " list" ) {
572- if (lastNumArgs >= 8 ) {
573- formatedMessage.add (" list (7 +):" );
586+ if (lastNumArgs >= 7 ) {
587+ formatedMessage.add (" list (6 +):" );
574588 } else {
575589 formatedMessage.add (" list (" + String (lastNumArgs) + " ):" );
576590 }
@@ -581,7 +595,7 @@ StringArray Connection::getMessageFormated()
581595 formatedMessage.add (args[arg].toString ());
582596 }
583597 }
584- if (lastNumArgs >= 8 ) {
598+ if (lastNumArgs >= 7 ) {
585599 formatedMessage.add (" ..." );
586600 }
587601 } else {
@@ -1366,7 +1380,7 @@ void ConnectionPathUpdater::timerCallback()
13661380 canvas->patch .endUndoSequence (" SetConnectionPaths" );
13671381}
13681382
1369- void Connection::receiveMessage (t_symbol* symbol, StackArray<pd::Atom, 8 > const & atoms, int numAtoms)
1383+ void Connection::receiveMessage (t_symbol* symbol, StackArray<pd::Atom, 7 > const & atoms, int numAtoms)
13701384{
13711385 if (cnv->shouldShowConnectionActivity ()) {
13721386 startTimer (StopAnimation, 1000 / 8 .0f );
0 commit comments