Index: tools/json_schema_compiler/cc_generator.py |
diff --git a/tools/json_schema_compiler/cc_generator.py b/tools/json_schema_compiler/cc_generator.py |
index 978ab9362726b5cbc39f9f8b16f21309b21e1a40..a709c038acc37865aba01ed08e74d925a943107d 100644 |
--- a/tools/json_schema_compiler/cc_generator.py |
+++ b/tools/json_schema_compiler/cc_generator.py |
@@ -500,11 +500,18 @@ class _Generator(object): |
return ('base::BinaryValue::CreateWithCopiedBuffer(%sdata(), %ssize())' % |
(vardot, vardot)) |
elif underlying_type.property_type == PropertyType.ARRAY: |
+ item_type = underlying_type.item_type |
+ # Any enum will only have a namespace if it's not a ref, hence the lack |
+ # of FollowRef(item_type) here and just directly comparing to ENUM. |
+ enum_namespace = None |
+ if item_type.property_type == PropertyType.ENUM: |
+ enum_namespace = cpp_namespace |
return '%s.release()' % self._util_cc_helper.CreateValueFromArray( |
- cpp_namespace, |
- underlying_type, |
var, |
- is_ptr) |
+ optional=is_ptr, |
+ is_enum=self._type_helper.FollowRef(item_type).property_type == |
+ PropertyType.ENUM, |
+ enum_namespace=enum_namespace) |
elif underlying_type.property_type.is_fundamental: |
if is_ptr: |
var = '*%s' % var |