diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/backend.c | 5 | ||||
-rw-r--r-- | core/config.c | 2 | ||||
-rw-r--r-- | core/routing.c | 6 |
3 files changed, 10 insertions, 3 deletions
diff --git a/core/backend.c b/core/backend.c index 93ac8fa..6a25534 100644 --- a/core/backend.c +++ b/core/backend.c @@ -87,7 +87,10 @@ int backends_notify(size_t nev, channel** c, channel_value* v){ } } - //TODO eliminate duplicates + /* + * Do not eliminate duplicates here. There are legitimate uses for a channel occuring multiple times + * in one loop iteration, e.g. stateful OSC layer selectors. + */ DBGPF("Calling handler for instance %s with %" PRIsize_t " events", c[u]->instance->name, n - u); rv |= c[u]->instance->backend->handle(c[u]->instance, n - u, c + u, v + u); } diff --git a/core/config.c b/core/config.c index b950b25..a53b7c4 100644 --- a/core/config.c +++ b/core/config.c @@ -208,7 +208,7 @@ static int config_glob_scan(instance* inst, channel_spec* spec){ } if(!spec->internal){ //TODO try to parse globs externally - LOGPF("Failed to parse glob %" PRIsize_t " in %s internally", u + 1, spec->spec); + LOGPF("Failed to parse glob %" PRIsize_t " in %s internally - this may indicate a typing error", u + 1, spec->spec); return 1; } diff --git a/core/routing.c b/core/routing.c index 284569a..caaf512 100644 --- a/core/routing.c +++ b/core/routing.c @@ -122,7 +122,11 @@ MM_API int mm_channel_event(channel* c, channel_value v){ } //enqueue channel events - //FIXME this might lead to one channel being mentioned multiple times in an apply call + /* + * This might lead to one channel being mentioned multiple times in an apply call. + * That effect should not be eliminated as there are legitimate uses for one channel + * being set multiple times in one core iteration (e.g. for stateful layer selection messages) + */ memcpy(routing.events->channel + routing.events->n, routing.map[bucket][u].to, routing.map[bucket][u].destinations * sizeof(channel*)); for(p = 0; p < routing.map[bucket][u].destinations; p++){ routing.events->value[routing.events->n + p] = v; |