summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-07-07 14:46:25 +0000
committerDavid Robillard <d@drobilla.net>2011-07-07 14:46:25 +0000
commitbce946fd0a645e42c91929494cf0c4b66b1e4cd9 (patch)
tree25de64a0503da87fea902cf89b399232f7952aa6
parent21aec9adbce327a3ff69fe23f32950ede30bae5f (diff)
downloadingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.tar.gz
ingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.tar.bz2
ingen-bce946fd0a645e42c91929494cf0c4b66b1e4cd9.zip
Obey "special" properties on object creation (patch from Paul Giblock, ticket #723)
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3416 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--src/server/events/SetMetadata.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/events/SetMetadata.cpp b/src/server/events/SetMetadata.cpp
index d9d44cc0..23109a2f 100644
--- a/src/server/events/SetMetadata.cpp
+++ b/src/server/events/SetMetadata.cpp
@@ -139,12 +139,13 @@ SetMetadata::pre_process()
_create_event = new CreatePort(_engine, sub_request, _time,
path, data_type.uri(), is_output, _properties);
}
- if (_create_event)
+ if (_create_event) {
_create_event->pre_process();
- else
+ // Grab the object for applying properties, if the create-event succeeded
+ _object = _engine.engine_store()->find_object(Path(_subject.str()));
+ } else {
_error = BAD_OBJECT_TYPE;
- QueuedEvent::pre_process();
- return;
+ }
}
_types.reserve(_properties.size());
@@ -268,11 +269,7 @@ SetMetadata::execute(ProcessContext& context)
}
if (_create_event) {
- QueuedEvent::execute(context);
_create_event->execute(context);
- if (_blocking)
- _request->unblock();
- return;
}
for (SetEvents::iterator i = _set_events.begin(); i != _set_events.end(); ++i)