diff --git a/packages/flutter/lib/src/painting/image_resolution.dart b/packages/flutter/lib/src/painting/image_resolution.dart index cff07905f4..7c354a001e 100644 --- a/packages/flutter/lib/src/painting/image_resolution.dart +++ b/packages/flutter/lib/src/painting/image_resolution.dart @@ -214,7 +214,11 @@ class AssetImage extends AssetBundleImageProvider { if (json == null) return null; // TODO(ianh): JSON decoding really shouldn't be on the main thread. - final Map> parsedManifest = JSON.decode(json); + final Map parsedJson = JSON.decode(json); + final Iterable keys = parsedJson.keys; + final Map> parsedManifest = + new Map>.fromIterables(keys, + keys.map((String key) => new List.from(parsedJson[key]))); // TODO(ianh): convert that data structure to the right types. return new SynchronousFuture>>(parsedManifest); } diff --git a/packages/flutter/lib/src/services/asset_bundle.dart b/packages/flutter/lib/src/services/asset_bundle.dart index 3daff2b94c..a1809d1b87 100644 --- a/packages/flutter/lib/src/services/asset_bundle.dart +++ b/packages/flutter/lib/src/services/asset_bundle.dart @@ -179,10 +179,10 @@ abstract class CachingAssetBundle extends AssetBundle { assert(parser != null); if (_structuredDataCache.containsKey(key)) return _structuredDataCache[key]; - Completer completer; - Future result; + Completer completer; + Future result; loadString(key, cache: false).then(parser).then((T value) { - result = new SynchronousFuture(value); + result = new SynchronousFuture(value); _structuredDataCache[key] = result; if (completer != null) { // We already returned from the loadStructuredData function, which means @@ -198,7 +198,7 @@ abstract class CachingAssetBundle extends AssetBundle { } // The code above hasn't yet run its "then" handler yet. Let's prepare a // completer for it to use when it does run. - completer = new Completer(); + completer = new Completer(); _structuredDataCache[key] = completer.future; return completer.future; }