0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-10 05:58:56 +02:00

ircd:Ⓜ️:fed::user::keys::query: Avoid placement new reconstruction kludge.

ircd:Ⓜ️:fed::user::keys::claim: Fix placement new reconstruction funnybiz.
This commit is contained in:
Jason Volk 2019-07-30 11:30:44 -07:00
parent d5f64e5a74
commit e50371f3b5

View file

@ -908,6 +908,7 @@ ircd::m::v1::user::keys::query::query(const user_devices &v,
ircd::m::v1::user::keys::query::query(const vector_view<const user_devices> &v,
const mutable_buffer &buf,
opts opts)
:query{[&v, &buf, &opts]
{
json::stack out{buf};
{
@ -935,15 +936,18 @@ ircd::m::v1::user::keys::query::query(const vector_view<const user_devices> &v,
out.completed()
};
new (this) query
return query
{
content, buf + size(string_view(content)), std::move(opts)
};
}()}
{
}
ircd::m::v1::user::keys::query::query(const user_devices_map &map,
const mutable_buffer &buf,
opts opts)
:query{[&map, &buf, &opts]
{
json::stack out{buf};
{
@ -965,10 +969,12 @@ ircd::m::v1::user::keys::query::query(const user_devices_map &map,
out.completed()
};
new (this) query
return query
{
content, buf + size(string_view(content)), std::move(opts)
};
}()}
{
}
ircd::m::v1::user::keys::query::query(const json::object &content,
@ -1068,6 +1074,7 @@ ircd::m::v1::user::keys::claim::claim(const user_devices &ud,
ircd::m::v1::user::keys::claim::claim(const vector_view<const user_devices> &v,
const mutable_buffer &buf,
opts opts)
:claim{[&v, &buf, &opts]
{
json::stack out{buf};
{
@ -1101,15 +1108,18 @@ ircd::m::v1::user::keys::claim::claim(const vector_view<const user_devices> &v,
out.completed()
};
new (this) claim
return claim
{
content, buf + size(string_view(content)), std::move(opts)
};
}()}
{
}
ircd::m::v1::user::keys::claim::claim(const user_devices_map &map,
const mutable_buffer &buf,
opts opts)
:claim{[&map, &buf, &opts]
{
json::stack out{buf};
{
@ -1135,10 +1145,12 @@ ircd::m::v1::user::keys::claim::claim(const user_devices_map &map,
out.completed()
};
new (this) claim
return claim
{
content, buf + size(string_view(content)), std::move(opts)
};
}()}
{
}
ircd::m::v1::user::keys::claim::claim(const json::object &content,