Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 from code import Code | 5 from code import Code |
| 6 from model import PropertyType | 6 from model import PropertyType |
| 7 import cpp_util | 7 import cpp_util |
| 8 import schema_util | 8 import schema_util |
| 9 import util_cc_helper | 9 import util_cc_helper |
| 10 from cpp_namespace_environment import CppNamespaceEnvironment | 10 from cpp_namespace_environment import CppNamespaceEnvironment |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 356 (c.Sblock('scoped_ptr<base::DictionaryValue> %s::ToValue() const {' % | 356 (c.Sblock('scoped_ptr<base::DictionaryValue> %s::ToValue() const {' % |
| 357 cpp_namespace) | 357 cpp_namespace) |
| 358 .Append('scoped_ptr<base::DictionaryValue> value(' | 358 .Append('scoped_ptr<base::DictionaryValue> value(' |
| 359 'new base::DictionaryValue());') | 359 'new base::DictionaryValue());') |
| 360 .Append() | 360 .Append() |
| 361 ) | 361 ) |
| 362 | 362 |
| 363 for prop in type_.properties.values(): | 363 for prop in type_.properties.values(): |
| 364 prop_var = 'this->%s' % prop.unix_name | 364 prop_var = 'this->%s' % prop.unix_name |
| 365 if prop.optional: | 365 if prop.optional: |
| 366 # Optional enum values are generated with a NONE enum value. | |
| 367 underlying_type = self._type_helper.FollowRef(prop.type_) | 366 underlying_type = self._type_helper.FollowRef(prop.type_) |
| 368 if underlying_type.property_type == PropertyType.ENUM: | 367 if underlying_type.property_type == PropertyType.ENUM: |
| 369 c.Sblock('if (%s != %s) {' % | 368 # Optional enum values are generated with a NONE enum value, |
| 369 # potentially from another namespace. | |
| 370 maybe_namespace = '' | |
| 371 if underlying_type.namespace != self._namespace: | |
| 372 maybe_namespace = '%s::' % underlying_type.namespace.unix_name | |
| 373 c.Sblock('if (%s != %s%s) {' % | |
|
Devlin
2015/04/23 23:26:51
Honestly, we should probably just fully specify ev
not at google - send to devlin
2015/04/23 23:28:45
Hah, yes, that would make things simpler.
| |
| 370 (prop_var, | 374 (prop_var, |
| 375 maybe_namespace, | |
| 371 self._type_helper.GetEnumNoneValue(prop.type_))) | 376 self._type_helper.GetEnumNoneValue(prop.type_))) |
| 372 else: | 377 else: |
| 373 c.Sblock('if (%s.get()) {' % prop_var) | 378 c.Sblock('if (%s.get()) {' % prop_var) |
| 374 | 379 |
| 375 # ANY is a base::Value which is abstract and cannot be a direct member, so | 380 # ANY is a base::Value which is abstract and cannot be a direct member, so |
| 376 # it will always be a pointer. | 381 # it will always be a pointer. |
| 377 is_ptr = prop.optional or prop.type_.property_type == PropertyType.ANY | 382 is_ptr = prop.optional or prop.type_.property_type == PropertyType.ANY |
| 378 c.Cblock(self._CreateValueFromType( | 383 c.Cblock(self._CreateValueFromType( |
| 379 'value->SetWithoutPathExpansion("%s", %%s);' % prop.name, | 384 'value->SetWithoutPathExpansion("%s", %%s);' % prop.name, |
| 380 prop.name, | 385 prop.name, |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1063 if self._generate_error_messages: | 1068 if self._generate_error_messages: |
| 1064 params = list(params) + ['base::string16* error'] | 1069 params = list(params) + ['base::string16* error'] |
| 1065 return ', '.join(str(p) for p in params) | 1070 return ', '.join(str(p) for p in params) |
| 1066 | 1071 |
| 1067 def _GenerateArgs(self, args): | 1072 def _GenerateArgs(self, args): |
| 1068 """Builds the argument list for a function, given an array of arguments. | 1073 """Builds the argument list for a function, given an array of arguments. |
| 1069 """ | 1074 """ |
| 1070 if self._generate_error_messages: | 1075 if self._generate_error_messages: |
| 1071 args = list(args) + ['error'] | 1076 args = list(args) + ['error'] |
| 1072 return ', '.join(str(a) for a in args) | 1077 return ', '.join(str(a) for a in args) |
| OLD | NEW |