| OLD | NEW |
| 1 {# TODO(yzshen): Make these templates more readable. #} | 1 {# TODO(yzshen): Make these templates more readable. #} |
| 2 | 2 |
| 3 {# Computes the serialized size for the specified struct. | 3 {# Computes the serialized size for the specified struct. |
| 4 |struct| is the struct definition. | 4 |struct| is the struct definition. |
| 5 |input_field_pattern| should be a pattern that contains one string | 5 |input_field_pattern| should be a pattern that contains one string |
| 6 placeholder, for example, "input->%s", "p_%s". The placeholder will be | 6 placeholder, for example, "input->%s", "p_%s". The placeholder will be |
| 7 substituted with struct field names to refer to the input fields. | 7 substituted with struct field names to refer to the input fields. |
| 8 This macro is expanded to compute seriailized size for both: | 8 This macro is expanded to compute seriailized size for both: |
| 9 - user-defined structs: the input is an instance of the corresponding struct | 9 - user-defined structs: the input is an instance of the corresponding struct |
| 10 wrapper class. | 10 wrapper class. |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 {%- set condition = "!%s->%s.ptr" | format(output,name) %} | 174 {%- set condition = "!%s->%s.ptr" | format(output,name) %} |
| 175 {%- endif %} | 175 {%- endif %} |
| 176 {{_validation_check_macro( | 176 {{_validation_check_macro( |
| 177 condition = condition, | 177 condition = condition, |
| 178 error_code = "mojo::internal::ValidationError::UNEXPECTED_NULL_POINTER", | 178 error_code = "mojo::internal::ValidationError::UNEXPECTED_NULL_POINTER", |
| 179 error_msg = "null %s in %s" | format(name, struct_display_name), | 179 error_msg = "null %s in %s" | format(name, struct_display_name), |
| 180 should_return_errors = should_return_errors)}} | 180 should_return_errors = should_return_errors)}} |
| 181 {%- endif %} | 181 {%- endif %} |
| 182 {%- elif kind|is_any_handle_kind or kind|is_interface_kind %} | 182 {%- elif kind|is_any_handle_kind or kind|is_interface_kind %} |
| 183 {%- if kind|is_interface_kind %} | 183 {%- if kind|is_interface_kind %} |
| 184 mojo::internal::InterfacePointerToData({{input_field}}.Pass(), &{{output}}->{{
name}}); | 184 mojo::internal::InterfaceHandleToData({{input_field}}.Pass(), |
| 185 &{{output}}->{{name}}); |
| 185 {%- elif kind|is_interface_request_kind %} | 186 {%- elif kind|is_interface_request_kind %} |
| 186 {{output}}->{{name}} = {{input_field}}.PassMessagePipe().release(); | 187 {{output}}->{{name}} = {{input_field}}.PassMessagePipe().release(); |
| 187 {%- else %} | 188 {%- else %} |
| 188 {{output}}->{{name}} = {{input_field}}.release(); | 189 {{output}}->{{name}} = {{input_field}}.release(); |
| 189 {%- endif %} | 190 {%- endif %} |
| 190 {%- if not kind|is_nullable_kind %} | 191 {%- if not kind|is_nullable_kind %} |
| 191 {%- if kind|is_interface_kind %} | 192 {%- if kind|is_interface_kind %} |
| 192 {%- set condition = "!%s->%s.handle.is_valid()" | format(output, name) %
} | 193 {%- set condition = "!%s->%s.handle.is_valid()" | format(output, name) %
} |
| 193 {%- else %} | 194 {%- else %} |
| 194 {%- set condition = "!%s->%s.is_valid()" | format(output,name) %} | 195 {%- set condition = "!%s->%s.is_valid()" | format(output,name) %} |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 {%- elif kind|is_struct_kind %} | 247 {%- elif kind|is_struct_kind %} |
| 247 if ({{input}}->{{name}}.ptr) { | 248 if ({{input}}->{{name}}.ptr) { |
| 248 {{output_field}} = {{kind|get_name_for_kind}}::New(); | 249 {{output_field}} = {{kind|get_name_for_kind}}::New(); |
| 249 Deserialize_({{input}}->{{name}}.ptr, {{output_field}}.get()); | 250 Deserialize_({{input}}->{{name}}.ptr, {{output_field}}.get()); |
| 250 } | 251 } |
| 251 {%- else %} | 252 {%- else %} |
| 252 {#- Arrays and Maps #} | 253 {#- Arrays and Maps #} |
| 253 Deserialize_({{input}}->{{name}}.ptr, &{{output_field}}); | 254 Deserialize_({{input}}->{{name}}.ptr, &{{output_field}}); |
| 254 {%- endif %} | 255 {%- endif %} |
| 255 {%- elif kind|is_interface_kind %} | 256 {%- elif kind|is_interface_kind %} |
| 256 mojo::internal::InterfaceDataToPointer(&{{input}}->{{name}}, &{{output_field
}}); | 257 mojo::internal::InterfaceDataToHandle(&{{input}}->{{name}}, &{{output_field}
}); |
| 257 {%- elif kind|is_interface_request_kind %} | 258 {%- elif kind|is_interface_request_kind %} |
| 258 {{output_field}}.Bind(mojo::MakeScopedHandle(mojo::internal::FetchAndReset(&
{{input}}->{{name}}))); | 259 {{output_field}}.Bind(mojo::MakeScopedHandle(mojo::internal::FetchAndReset(&
{{input}}->{{name}}))); |
| 259 {%- elif kind|is_any_handle_kind %} | 260 {%- elif kind|is_any_handle_kind %} |
| 260 {{output_field}}.reset(mojo::internal::FetchAndReset(&{{input}}->{{name}})); | 261 {{output_field}}.reset(mojo::internal::FetchAndReset(&{{input}}->{{name}})); |
| 261 {%- elif kind|is_enum_kind %} | 262 {%- elif kind|is_enum_kind %} |
| 262 {{output_field}} = static_cast<{{kind|cpp_wrapper_type}}>({{input}}->{{name}
}); | 263 {{output_field}} = static_cast<{{kind|cpp_wrapper_type}}>({{input}}->{{name}
}); |
| 263 {%- else %} | 264 {%- else %} |
| 264 {{output_field}} = {{input}}->{{name}}; | 265 {{output_field}} = {{input}}->{{name}}; |
| 265 {%- endif %} | 266 {%- endif %} |
| 266 {%- endfor %} | 267 {%- endfor %} |
| 267 } while (false); | 268 } while (false); |
| 268 {%- endmacro %} | 269 {%- endmacro %} |
| 269 | 270 |
| 270 {# Forward declares |struct|, and typedefs the appropriate Ptr wrapper | 271 {# Forward declares |struct|, and typedefs the appropriate Ptr wrapper |
| 271 (|mojo::StructPtr| or |mojo::InlinedStructPtr|). This macro is expanded for | 272 (|mojo::StructPtr| or |mojo::InlinedStructPtr|). This macro is expanded for |
| 272 all generated structs: | 273 all generated structs: |
| 273 - user-defined mojo structs | 274 - user-defined mojo structs |
| 274 - interface method params/response params #} | 275 - interface method params/response params #} |
| 275 {%- macro structptr_forward_decl(struct) -%} | 276 {%- macro structptr_forward_decl(struct) -%} |
| 276 class {{struct.name}}; | 277 class {{struct.name}}; |
| 277 {% if struct|should_inline %} | 278 {% if struct|should_inline %} |
| 278 using {{struct.name}}Ptr = mojo::InlinedStructPtr<{{struct.name}}>; | 279 using {{struct.name}}Ptr = mojo::InlinedStructPtr<{{struct.name}}>; |
| 279 {% else %} | 280 {% else %} |
| 280 using {{struct.name}}Ptr = mojo::StructPtr<{{struct.name}}>; | 281 using {{struct.name}}Ptr = mojo::StructPtr<{{struct.name}}>; |
| 281 {% endif %} | 282 {% endif %} |
| 282 {% endmacro %} | 283 {% endmacro %} |
| OLD | NEW |