Lambda-Closures durch Inline-Closures ersetzt
Change-Id: I1e11adf99f01066ecb374401d34a8d138ed8083a
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 6b917f1..7ebaebd 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -84,13 +84,10 @@
private int CountUser(mapping l)
{
- mapping n;
- n = ([]);
- walk_mapping(l, lambda(({'i/*'*/, 'a/*'*/, 'n/*'*/}),
- ({#'+=/*'*/, 'n/*'*/,
- ({#'mkmapping/*'*/,
- ({#'[/*'*/, 'a/*'*/, 0})})})),
- &n);
+ mapping n = ([]);
+ walk_mapping(l, function void (string chan_name, mixed* chan_data) {
+ n += mkmapping(chan_data[I_MEMBER]);
+ });
return sizeof(n);
}
@@ -611,13 +608,11 @@
filter_objects(channels[lower_case(ch)][I_MEMBER],
"QueryProp", P_CHANNELS);
map(channels[lower_case(ch)][I_MEMBER],
- lambda(({'u/*'*/}), ({#'call_other/*'*/, 'u, /*'*/
- "SetProp", P_CHANNELS,
- ({#'-/*'*/,
- ({#'call_other/*'*/, 'u, /*'*/
- "QueryProp", P_CHANNELS}),
- '({ lower_case(ch) })/*'*/,})
- })));
+ function mixed (object listener) {
+ string* chans = listener->QueryProp(P_CHANNELS)
+ chans -= ({lower_case(ch)});
+ listener->SetProp(P_CHANNELS, chans);
+ });
channels = m_copy_delete(channels, lower_case(ch));
// Wird ein Channel entfernt, wird auch seine History geloescht