Index: mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl |
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl |
index 8c61c86ab18527ffdcb80e789d8aee1a44c4e6a2..0b7823a7d505353295747159d13b4c07911efd2b 100644 |
--- a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl |
+++ b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl |
@@ -25,7 +25,9 @@ |
{{struct.name}}Ptr {{struct.name}}::Clone() const { |
{{struct.name}}Ptr rv(New()); |
{%- for field in struct.fields %} |
-{%- if field.kind|is_object_kind and not field.kind|is_string_kind %} |
+{%- if field.kind|is_native_kind %} |
+ NOTREACHED() << "Cloning not supported when using native types."; |
+{%- elif field.kind|is_object_kind and not field.kind|is_string_kind %} |
rv->{{field.name}} = {{field.name}}.Clone(); |
{%- else %} |
rv->{{field.name}} = {{field.name}}; |
@@ -37,8 +39,12 @@ |
bool {{struct.name}}::Equals(const {{struct.name}}& other) const { |
{%- for field in struct.fields %} |
+{%- if field.kind|is_native_kind %} |
+ NOTREACHED() << "Equality testing not supported when using native types."; |
+{%- else %} |
if (!mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals(this->{{field.name}}, other.{{field.name}})) |
return false; |
+{%- endif %} |
{%- endfor %} |
return true; |
} |