From 77a9beca75debd2d87d735fc4fe847694eee6f13 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 25 Feb 2010 20:40:13 +0000 Subject: Work on contexts and polymorphic ports. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2492 a436a847-0d15-0410-975c-d299462d15a1 --- src/engine/events/Disconnect.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/engine/events/Disconnect.cpp') diff --git a/src/engine/events/Disconnect.cpp b/src/engine/events/Disconnect.cpp index 250dc234..f25c0f4a 100644 --- a/src/engine/events/Disconnect.cpp +++ b/src/engine/events/Disconnect.cpp @@ -190,10 +190,12 @@ Disconnect::execute(ProcessContext& context) _dst_input_port->connect_buffers(); if (_clear_dst_port) { for (uint32_t v = 0; v < _dst_input_port->poly(); ++v) { - if (_dst_input_port->type() == PortType::CONTROL) { - PtrCast(_dst_input_port->buffer(v))->set_value( - _dst_input_port->value().get_float(), - context.start(), context.start()); + if (_dst_input_port->is_a(PortType::CONTROL)) { + IntrusivePtr abuf(PtrCast( + _dst_input_port->buffer(v))); + if (abuf) + abuf->set_value(_dst_input_port->value().get_float(), + context.start(), context.start()); } else { _dst_input_port->buffer(v)->clear(); } -- cgit v1.2.1