| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 """Generates C++ source files from a mojom.Module.""" | 5 """Generates C++ source files from a mojom.Module.""" |
| 6 | 6 |
| 7 import mojom.generate.generator as generator | 7 import mojom.generate.generator as generator |
| 8 import mojom.generate.module as mojom | 8 import mojom.generate.module as mojom |
| 9 import mojom.generate.pack as pack | 9 import mojom.generate.pack as pack |
| 10 from mojom.generate.template_expander import UseJinja | 10 from mojom.generate.template_expander import UseJinja |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 if kind.spec in checked: | 189 if kind.spec in checked: |
| 190 return True | 190 return True |
| 191 checked.add(kind.spec) | 191 checked.add(kind.spec) |
| 192 if mojom.IsNullableKind(kind): | 192 if mojom.IsNullableKind(kind): |
| 193 return False | 193 return False |
| 194 elif mojom.IsStructKind(kind): | 194 elif mojom.IsStructKind(kind): |
| 195 if (IsTypemappedKind(kind) and | 195 if (IsTypemappedKind(kind) and |
| 196 not _current_typemap[GetFullMojomNameForKind(kind)]["hashable"]): | 196 not _current_typemap[GetFullMojomNameForKind(kind)]["hashable"]): |
| 197 return False | 197 return False |
| 198 return all(Check(field.kind) for field in kind.fields) | 198 return all(Check(field.kind) for field in kind.fields) |
| 199 elif mojom.IsEnumKind(kind): |
| 200 if (IsTypemappedKind(kind) and |
| 201 not _current_typemap[GetFullMojomNameForKind(kind)]["hashable"]): |
| 202 return False |
| 203 return True |
| 199 elif mojom.IsUnionKind(kind): | 204 elif mojom.IsUnionKind(kind): |
| 200 return all(Check(field.kind) for field in kind.fields) | 205 return all(Check(field.kind) for field in kind.fields) |
| 201 elif mojom.IsAnyHandleKind(kind): | 206 elif mojom.IsAnyHandleKind(kind): |
| 202 return False | 207 return False |
| 203 elif mojom.IsAnyInterfaceKind(kind): | 208 elif mojom.IsAnyInterfaceKind(kind): |
| 204 return False | 209 return False |
| 205 # TODO(tibell): Arrays and maps could be made hashable. We just don't have a | 210 # TODO(tibell): Arrays and maps could be made hashable. We just don't have a |
| 206 # use case yet. | 211 # use case yet. |
| 207 elif mojom.IsArrayKind(kind): | 212 elif mojom.IsArrayKind(kind): |
| 208 return False | 213 return False |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 global _use_new_wrapper_types | 671 global _use_new_wrapper_types |
| 667 _use_new_wrapper_types = self.use_new_wrapper_types | 672 _use_new_wrapper_types = self.use_new_wrapper_types |
| 668 global _variant | 673 global _variant |
| 669 _variant = self.variant | 674 _variant = self.variant |
| 670 suffix = "-%s" % self.variant if self.variant else "" | 675 suffix = "-%s" % self.variant if self.variant else "" |
| 671 self.Write(self.GenerateModuleHeader(), | 676 self.Write(self.GenerateModuleHeader(), |
| 672 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix))) | 677 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix))) |
| 673 self.Write( | 678 self.Write( |
| 674 self.GenerateModuleSource(), | 679 self.GenerateModuleSource(), |
| 675 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix))) | 680 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix))) |
| OLD | NEW |