Skip to content

Commit

Permalink
Merge pull request #386 from ably/fix/message-extras-serialization
Browse files Browse the repository at this point in the history
Removed unnecessary serialization of MessageExtras
  • Loading branch information
ikurek committed May 12, 2022
2 parents 7a04c53 + 95c07fb commit 45f6fa4
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions lib/src/message/src/message_extras.dart
@@ -1,5 +1,3 @@
import 'dart:convert';

import 'package:ably_flutter/ably_flutter.dart';
import 'package:ably_flutter/src/common/src/object_hash.dart';
import 'package:ably_flutter/src/platform/platform_internal.dart';
Expand Down Expand Up @@ -28,13 +26,14 @@ class MessageExtras with ObjectHash {
/// the data type, runtime
static MessageExtras? fromMap(Map<String, dynamic>? extrasMap) {
if (extrasMap == null) return null;
extrasMap = Map.castFrom<dynamic, dynamic, String, dynamic>(
json.decode(json.encode(extrasMap)) as Map,
);
// In some cases, extrasMap may not be a mutable map
// for example, when it's a CastMap, so we need to create a mutable
// instance from the existing extras map
final mutableExtrasMap = Map<String, dynamic>.from(extrasMap);
final deltaMap =
extrasMap.remove(TxMessageExtras.delta) as Map<String, dynamic>?;
mutableExtrasMap.remove(TxMessageExtras.delta) as Map<String, dynamic>?;
return MessageExtras._withDelta(
extrasMap,
mutableExtrasMap,
(deltaMap == null) ? null : DeltaExtras.fromMap(deltaMap),
);
}
Expand Down

0 comments on commit 45f6fa4

Please sign in to comment.