| Index: mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl b/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
|
| index dd215f5cd7d5130ae107b89eed4266b24d3965d6..b22a7f3e6496d4d9b67d657e44fd2eb1447e7615 100644
|
| --- a/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
|
| @@ -22,43 +22,30 @@ const {{constant.kind|dart_type}} {{constant|name}} = {{constant.resolved_value}
|
| {%- endfor -%}
|
|
|
| {#--- Interface definitions #}
|
| -{% import "mojom_type_macros.tmpl" as mojom_type_macros %}
|
| {%- for interface in interfaces -%}
|
| {%- include "interface_definition.tmpl" %}
|
| {%- endfor %}
|
| +
|
| {% if should_gen_mojom_types -%}
|
| -{%- import "mojom_reference_macros.tmpl" as mojom_reference_macros %}
|
| -{%- set mapping = '_mojomDesc' %}
|
| -{%- set temp_mapping = 'map' %}
|
| -Map<String, {{typepkg}}UserDefinedType> _initDescriptions() {
|
| - var {{temp_mapping}} = new HashMap<String, {{typepkg}}UserDefinedType>();
|
| -{%- for enum in enums %}
|
| - {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, enum)}}
|
| -{%- endfor -%}
|
| -{%- for struct in structs %}
|
| - {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, struct)}}
|
| -{%- endfor -%}
|
| -{%- for union in unions %}
|
| - {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, union)}}
|
| -{%- endfor -%}
|
| -{%- for interface in interfaces %}
|
| - {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, interface)}}
|
| -{%- endfor -%}
|
| +{{typepkg}}RuntimeTypeInfo getRuntimeTypeInfo() => _runtimeTypeInfo ??
|
| + _initRuntimeTypeInfo();
|
|
|
| -{%- for import in imports %}
|
| - {{import.unique_name}}.getAllMojomTypeDefinitions()
|
| - .forEach((String s, {{typepkg}}UserDefinedType udt) {
|
| - {{temp_mapping}}[s] = udt;
|
| - });
|
| -{% endfor %}
|
| - return {{temp_mapping}};
|
| +Map<String, {{typepkg}}UserDefinedType> getAllMojomTypeDefinitions() {
|
| + return getRuntimeTypeInfo().typeMap;
|
| }
|
|
|
| -var {{mapping}};
|
| -Map<String, {{typepkg}}UserDefinedType> getAllMojomTypeDefinitions() {
|
| - if ({{mapping}} == null) {
|
| - {{mapping}} = _initDescriptions();
|
| - }
|
| - return {{mapping}};
|
| +var _runtimeTypeInfo;
|
| +{{typepkg}}RuntimeTypeInfo _initRuntimeTypeInfo() {
|
| + // serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
|
| + // a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
|
| + // file.
|
| + var serializedRuntimeTypeInfo = new Uint8List.fromList(const [{{serialized_runtime_type_info_literal}}]);
|
| +
|
| + // Deserialize RuntimeTypeInfo
|
| + var bdata = new ByteData.view(serializedRuntimeTypeInfo.buffer);
|
| + var message = new bindings.Message(bdata, null, serializedRuntimeTypeInfo.length, 0);
|
| + _runtimeTypeInfo = {{typepkg}}RuntimeTypeInfo.deserialize(message);
|
| + return _runtimeTypeInfo;
|
| }
|
| -{%- endif %}
|
| +
|
| +{%- endif %}
|
|
|