mirror of
https://github.com/matrix-construct/construct
synced 2024-11-26 08:42:34 +01:00
modules/client/sync: Optimize these user state iterations.
This commit is contained in:
parent
9028f63d35
commit
8230819edf
1 changed files with 13 additions and 10 deletions
|
@ -146,25 +146,27 @@ ircd::m::sync::room_account_data_polylog_events(data &data)
|
|||
|
||||
bool ret{false};
|
||||
data.user_state.for_each(type, [&data, &ret]
|
||||
(const m::event::idx &event_idx)
|
||||
(const string_view &type, const string_view &state_key, const m::event::idx &event_idx)
|
||||
{
|
||||
if(!apropos(data, event_idx))
|
||||
return;
|
||||
return true;
|
||||
|
||||
static const event::fetch::opts fopts
|
||||
{
|
||||
event::keys::include {"state_key", "content"}
|
||||
event::keys::include {"content"}
|
||||
};
|
||||
|
||||
const m::event::fetch event
|
||||
m::event::fetch event
|
||||
{
|
||||
event_idx, std::nothrow, fopts
|
||||
};
|
||||
|
||||
if(!event.valid)
|
||||
return;
|
||||
return true;
|
||||
|
||||
json::get<"state_key"_>(event) = state_key;
|
||||
ret |= room_account_data_polylog_events_event(data, event);
|
||||
return true;
|
||||
});
|
||||
|
||||
return ret;
|
||||
|
@ -229,14 +231,14 @@ ircd::m::sync::room_account_data_polylog_tags(data &data)
|
|||
|
||||
bool ret{false};
|
||||
data.user_state.for_each(type, [&data, &tags, &ret]
|
||||
(const m::event::idx &event_idx)
|
||||
(const string_view &type, const string_view &state_key, const m::event::idx &event_idx)
|
||||
{
|
||||
if(!apropos(data, event_idx))
|
||||
return;
|
||||
return true;
|
||||
|
||||
static const event::fetch::opts fopts
|
||||
{
|
||||
event::keys::include {"state_key", "content"}
|
||||
event::keys::include {"content"}
|
||||
};
|
||||
|
||||
const m::event::fetch event
|
||||
|
@ -245,14 +247,15 @@ ircd::m::sync::room_account_data_polylog_tags(data &data)
|
|||
};
|
||||
|
||||
if(!event.valid)
|
||||
return;
|
||||
return true;
|
||||
|
||||
json::stack::member tag
|
||||
{
|
||||
tags, json::get<"state_key"_>(event), json::get<"content"_>(event)
|
||||
tags, state_key, json::get<"content"_>(event)
|
||||
};
|
||||
|
||||
ret = true;
|
||||
return true;
|
||||
});
|
||||
|
||||
if(!ret)
|
||||
|
|
Loading…
Reference in a new issue