| OLD | NEW |
| 1 {%- set class_name = struct.name -%} | 1 {%- set class_name = struct.name -%} |
| 2 {%- set dtor_name = [] %} | 2 {%- set dtor_name = [] %} |
| 3 {%- if struct|is_struct_with_handles %} | 3 {%- if struct|is_struct_with_handles %} |
| 4 {%- set _ = dtor_name.append("&internal::%s_Data_Destructor"|format(struct.nam
e)) %} | 4 {%- set _ = dtor_name.append("&internal::%s_Data_Destructor"|format(struct.nam
e)) %} |
| 5 {%- else %} | 5 {%- else %} |
| 6 {%- set _ = dtor_name.append("NULL") %} | 6 {%- set _ = dtor_name.append("NULL") %} |
| 7 {%- endif %} | 7 {%- endif %} |
| 8 | 8 |
| 9 {%- macro set_default(kind, value, depth) -%} | 9 {%- macro set_default(kind, value, depth) -%} |
| 10 {#--- Strings ---#} | 10 {#--- Strings ---#} |
| 11 {%- if kind|is_string_kind -%} | 11 {%- if kind|is_string_kind -%} |
| 12 {{caller("mojo::String(" ~ value ~ ")")}} | 12 {{caller("mojo::String(" ~ value|expression_to_text(module) ~ ")")}} |
| 13 {#--- Arrays ---#} | 13 {#--- Arrays ---#} |
| 14 {%- elif kind|is_array_kind %} | 14 {%- elif kind|is_array_kind %} |
| 15 {%- set _ = value|verify_token_type("ARRAY") %} | 15 {%- set _ = value|verify_token_type("ARRAY") %} |
| 16 { | 16 { |
| 17 {{kind|cpp_wrapper_type}}::Builder tmp{{depth}}({{value[1]|length}}); | 17 {{kind|cpp_wrapper_type}}::Builder tmp{{depth}}({{value[1]|length}}); |
| 18 {%- for element in value[1] %} | 18 {%- for element in value[1] %} |
| 19 {%- filter indent(2) %} | 19 {%- filter indent(2) %} |
| 20 {%- call(result) set_default(kind.kind, element, depth+1) %} | 20 {%- call(result) set_default(kind.kind, element, depth+1) %} |
| 21 tmp{{depth}}[{{loop.index0}}] = {{result}}; | 21 tmp{{depth}}[{{loop.index0}}] = {{result}}; |
| 22 {%- endcall %} | 22 {%- endcall %} |
| (...skipping 13 matching lines...) Expand all Loading... |
| 36 {%- filter indent(2) %} | 36 {%- filter indent(2) %} |
| 37 {%- call(result) set_default(subfield.kind, element, depth+1) %} | 37 {%- call(result) set_default(subfield.kind, element, depth+1) %} |
| 38 tmp{{depth}}.set_{{subfield.name}}({{result}}); | 38 tmp{{depth}}.set_{{subfield.name}}({{result}}); |
| 39 {%- endcall %} | 39 {%- endcall %} |
| 40 {%- endfilter %} | 40 {%- endfilter %} |
| 41 {%- endfor -%} | 41 {%- endfor -%} |
| 42 {{caller("tmp" ~ depth ~ ".Finish()")|indent(2)}} | 42 {{caller("tmp" ~ depth ~ ".Finish()")|indent(2)}} |
| 43 } | 43 } |
| 44 {#--- POD types ---#} | 44 {#--- POD types ---#} |
| 45 {%- else -%} | 45 {%- else -%} |
| 46 {{caller(value|substitute_namespace(imports))}} | 46 {{caller(value|expression_to_text(module))}} |
| 47 {%- endif %} | 47 {%- endif %} |
| 48 {%- endmacro %} | 48 {%- endmacro %} |
| 49 | 49 |
| 50 {{class_name}}::Builder::Builder(mojo::Buffer* buf) | 50 {{class_name}}::Builder::Builder(mojo::Buffer* buf) |
| 51 : data_(Data::New(buf, {{dtor_name[0]}})) { | 51 : data_(Data::New(buf, {{dtor_name[0]}})) { |
| 52 {%- for pf in struct.packed.packed_fields if pf.field.default %} | 52 {%- for pf in struct.packed.packed_fields if pf.field.default %} |
| 53 {%- filter indent(2) %} | 53 {%- filter indent(2) %} |
| 54 {%- call(result) set_default(pf.field.kind, pf.field.default, 0) %} | 54 {%- call(result) set_default(pf.field.kind, pf.field.default, 0) %} |
| 55 set_{{pf.field.name}}({{result}}); | 55 set_{{pf.field.name}}({{result}}); |
| 56 {%- endcall %} | 56 {%- endcall %} |
| 57 {%- endfilter %} | 57 {%- endfilter %} |
| 58 {%- endfor %} | 58 {%- endfor %} |
| 59 } | 59 } |
| 60 | 60 |
| 61 {{class_name}} {{class_name}}::Builder::Finish() { | 61 {{class_name}} {{class_name}}::Builder::Finish() { |
| 62 Data* data = NULL; | 62 Data* data = NULL; |
| 63 std::swap(data, data_); | 63 std::swap(data, data_); |
| 64 return mojo::internal::Wrap(data); | 64 return mojo::internal::Wrap(data); |
| 65 } | 65 } |
| OLD | NEW |