Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl

Issue 622593002: mojo: Allow circular dependencies between structs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 {%- macro validate(struct, class_name) %} 1 {%- macro validate(struct, class_name) %}
2 if (!data) 2 if (!data)
3 return true; 3 return true;
4 4
5 if (!ValidateStructHeader( 5 if (!ValidateStructHeader(
6 data, sizeof({{class_name}}), 6 data, sizeof({{class_name}}),
7 {{struct.packed.packed_fields|length}}, bounds_checker)) { 7 {{struct.packed.packed_fields|length}}, bounds_checker)) {
8 return false; 8 return false;
9 } 9 }
10 10
(...skipping 15 matching lines...) Expand all
26 {%- endif %} 26 {%- endif %}
27 if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset)) { 27 if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset)) {
28 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_POINTER); 28 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_POINTER);
29 return false; 29 return false;
30 } 30 }
31 {%- if kind|is_any_array_kind or kind|is_string_kind %} 31 {%- if kind|is_any_array_kind or kind|is_string_kind %}
32 if (!{{wrapper_type}}::Data_::Validate< 32 if (!{{wrapper_type}}::Data_::Validate<
33 {{kind|get_array_validate_params|indent(10)}}>( 33 {{kind|get_array_validate_params|indent(10)}}>(
34 mojo::internal::DecodePointerRaw(&object->{{name}}.offset), 34 mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
35 bounds_checker)) { 35 bounds_checker)) {
36 {%- elif kind|is_struct_kind %}
37 if (!{{kind|get_name_for_kind}}::Data_::Validate(
38 mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
39 bounds_checker)) {
36 {%- else %} 40 {%- else %}
37 if (!{{wrapper_type}}::Data_::Validate( 41 if (!{{wrapper_type}}::Data_::Validate(
38 mojo::internal::DecodePointerRaw(&object->{{name}}.offset), 42 mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
39 bounds_checker)) { 43 bounds_checker)) {
40 {%- endif %} 44 {%- endif %}
41 return false; 45 return false;
42 } 46 }
43 {%- elif kind|is_any_handle_kind %} 47 {%- elif kind|is_any_handle_kind %}
44 {%- if not kind|is_nullable_kind %} 48 {%- if not kind|is_nullable_kind %}
45 if (object->{{name}}.value() == mojo::internal::kEncodedInvalidHandleValue) { 49 if (object->{{name}}.value() == mojo::internal::kEncodedInvalidHandleValue) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 110
107 {%- macro decodes(struct) -%} 111 {%- macro decodes(struct) -%}
108 {%- for pf in struct.packed.packed_fields %} 112 {%- for pf in struct.packed.packed_fields %}
109 {%- if pf.field.kind|is_object_kind %} 113 {%- if pf.field.kind|is_object_kind %}
110 mojo::internal::Decode(&{{pf.field.name}}, handles); 114 mojo::internal::Decode(&{{pf.field.name}}, handles);
111 {%- elif pf.field.kind|is_any_handle_kind %} 115 {%- elif pf.field.kind|is_any_handle_kind %}
112 mojo::internal::DecodeHandle(&{{pf.field.name}}, handles); 116 mojo::internal::DecodeHandle(&{{pf.field.name}}, handles);
113 {%- endif %} 117 {%- endif %}
114 {%- endfor %} 118 {%- endfor %}
115 {%- endmacro -%} 119 {%- endmacro -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698