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

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

Issue 488123003: Mojo cpp bindings: remove IsNonNullableValidationEnabled() check (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
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
11 const {{class_name}}* MOJO_ALLOW_UNUSED object = 11 const {{class_name}}* MOJO_ALLOW_UNUSED object =
12 static_cast<const {{class_name}}*>(data); 12 static_cast<const {{class_name}}*>(data);
13 13
14 {%- for packed_field in struct.packed.packed_fields %} 14 {%- for packed_field in struct.packed.packed_fields %}
15 {%- set name = packed_field.field.name %} 15 {%- set name = packed_field.field.name %}
16 {%- set kind = packed_field.field.kind %} 16 {%- set kind = packed_field.field.kind %}
17 {%- if kind|is_object_kind %} 17 {%- if kind|is_object_kind %}
18 {%- set wrapper_type = kind|cpp_wrapper_type %} 18 {%- set wrapper_type = kind|cpp_wrapper_type %}
19 {%- if not kind|is_nullable_kind %} 19 {%- if not kind|is_nullable_kind %}
20 if (mojo::internal::IsNonNullableValidationEnabled() && 20 if (!object->{{name}}.offset) {
21 !object->{{name}}.offset) {
22 ReportValidationError( 21 ReportValidationError(
23 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER); 22 mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER);
24 return false; 23 return false;
25 } 24 }
26 {%- endif %} 25 {%- endif %}
27 if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset)) { 26 if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset)) {
28 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_POINTER); 27 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_POINTER);
29 return false; 28 return false;
30 } 29 }
31 {%- if kind|is_any_array_kind or kind|is_string_kind %} 30 {%- if kind|is_any_array_kind or kind|is_string_kind %}
32 if (!{{wrapper_type}}::Data_::Validate< 31 if (!{{wrapper_type}}::Data_::Validate<
33 {{kind|get_array_validate_params|indent(10)}}>( 32 {{kind|get_array_validate_params|indent(10)}}>(
34 mojo::internal::DecodePointerRaw(&object->{{name}}.offset), 33 mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
35 bounds_checker)) { 34 bounds_checker)) {
36 {%- else %} 35 {%- else %}
37 if (!{{wrapper_type}}::Data_::Validate( 36 if (!{{wrapper_type}}::Data_::Validate(
38 mojo::internal::DecodePointerRaw(&object->{{name}}.offset), 37 mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
39 bounds_checker)) { 38 bounds_checker)) {
40 {%- endif %} 39 {%- endif %}
41 return false; 40 return false;
42 } 41 }
43 {%- elif kind|is_any_handle_kind %} 42 {%- elif kind|is_any_handle_kind %}
44 {%- if not kind|is_nullable_kind %} 43 {%- if not kind|is_nullable_kind %}
45 if (mojo::internal::IsNonNullableValidationEnabled() && 44 if (object->{{name}}.value() == mojo::internal::kEncodedInvalidHandleValue) {
46 object->{{name}}.value() == mojo::internal::kEncodedInvalidHandleValue) {
47 ReportValidationError( 45 ReportValidationError(
48 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE); 46 mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE);
49 return false; 47 return false;
50 } 48 }
51 {%- endif %} 49 {%- endif %}
52 if (!bounds_checker->ClaimHandle(object->{{name}})) { 50 if (!bounds_checker->ClaimHandle(object->{{name}})) {
53 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_HANDLE); 51 ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_HANDLE);
54 return false; 52 return false;
55 } 53 }
56 {%- endif %} 54 {%- endif %}
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 104
107 {%- macro decodes(struct) -%} 105 {%- macro decodes(struct) -%}
108 {%- for pf in struct.packed.packed_fields %} 106 {%- for pf in struct.packed.packed_fields %}
109 {%- if pf.field.kind|is_object_kind %} 107 {%- if pf.field.kind|is_object_kind %}
110 mojo::internal::Decode(&{{pf.field.name}}, handles); 108 mojo::internal::Decode(&{{pf.field.name}}, handles);
111 {%- elif pf.field.kind|is_any_handle_kind %} 109 {%- elif pf.field.kind|is_any_handle_kind %}
112 mojo::internal::DecodeHandle(&{{pf.field.name}}, handles); 110 mojo::internal::DecodeHandle(&{{pf.field.name}}, handles);
113 {%- endif %} 111 {%- endif %}
114 {%- endfor %} 112 {%- endfor %}
115 {%- endmacro -%} 113 {%- endmacro -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698