Signal-iOS/SignalMessaging/groups
Jordan Rose 58a688ad61 Lazily deserialize individual group changes
If there are several group changes being returned at once,
deserializing all of them up front can lead to excessive memory use,
especially for very large groups. This commit switches to
deserializing each change as it is used, which doubles the amount of
CPU work (because we loop through the changes twice) in exchange for
only ever having one Change object graph in memory at a time. It does
also mean we can get a protobuf deserialization error a bit later in
the process if the data is ever corrupted, but that shouldn't cause
additional issues at these particular call sites.
2022-01-20 12:00:50 -08:00
..
GroupsV2AvatarDownloadOperation.swift Convert to new Promise library 2021-09-03 11:41:34 -07:00
GroupsV2Impl.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupsV2Impl+RestoreGroups.swift Clean up HTTP error metadata accessors. 2021-10-15 11:52:31 -03:00
GroupsV2IncomingChanges.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupsV2Migration.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupsV2OutgoingChangesImpl.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupsV2ProfileKeyUpdater.swift Clean up HTTP error metadata accessors. 2021-10-15 11:52:31 -03:00
GroupsV2Protos.swift Lazily deserialize individual group changes 2022-01-20 12:00:50 -08:00
GroupsV2Utils.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupV2Params.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupV2SnapshotImpl.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
GroupV2UpdatesImpl.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00
StorageService+GroupsV2.swift Remove ZKGroup 2022-01-03 12:00:19 -08:00