1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-08 19:08:34 +03:00

Intern legacy top-level 'membership' field

There is a legacy top-level 'membership' field on events. We were
interning the normal one in 'content', but not this one, so the
legacy field was still keeping a copy of the string 'join' / 'leave'
etc in memory for every member event.

This make the interning code know about this field.
This commit is contained in:
David Baker
2018-02-22 16:04:35 +00:00
parent 1e017df128
commit a72f915646

View File

@@ -80,7 +80,10 @@ module.exports.MatrixEvent = function MatrixEvent(
// intern the values of matrix events to force share strings and reduce the // intern the values of matrix events to force share strings and reduce the
// amount of needless string duplication. This can save moderate amounts of // amount of needless string duplication. This can save moderate amounts of
// memory (~10% on a 350MB heap). // memory (~10% on a 350MB heap).
["state_key", "type", "sender", "room_id"].forEach((prop) => { // 'membership' at the event level (rather than the content level) is a legacy
// field that Riot never otherwise looks at, but it will still take up a lot
// of space if we don't intern it.
["state_key", "type", "sender", "room_id", "membership"].forEach((prop) => {
if (!event[prop]) { if (!event[prop]) {
return; return;
} }