On Thu, Sep 21, 2017 at 10:25 AM, Dylan Baker <dy...@pnwbakers.com> wrote:
> Quoting Jason Ekstrand (2017-09-21 08:32:20) > > From: Lionel Landwerlin <lionel.g.landwer...@intel.com> > > > > It will be used to store extension numbers as well. > > > > Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > > Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > > --- > > src/vulkan/util/gen_enum_to_str.py | 22 +++++++++++----------- > > 1 file changed, 11 insertions(+), 11 deletions(-) > > > > diff --git a/src/vulkan/util/gen_enum_to_str.py > b/src/vulkan/util/gen_enum_to_str.py > > index efe5d4f..5281e89 100644 > > --- a/src/vulkan/util/gen_enum_to_str.py > > +++ b/src/vulkan/util/gen_enum_to_str.py > > @@ -115,18 +115,18 @@ FOREIGN_ENUM_VALUES = [ > > ] > > > > > > -class EnumFactory(object): > > +class NamedFactory(object): > > """Factory for creating enums.""" > > > > def __init__(self, type_): > > self.registry = {} > > self.type = type_ > > > > - def __call__(self, name): > > + def __call__(self, *args): > > This is pretty ugly and clunky. What about > __call__(self, name, **kwargs), and pass kwargs directly to the type? > Fine with me. > > try: > > - return self.registry[name] > > + return self.registry[args[0]] > > except KeyError: > > - n = self.registry[name] = self.type(name) > > + n = self.registry[args[0]] = self.type(*args) > > return n > > > > > > @@ -138,7 +138,7 @@ class VkEnum(object): > > self.values = values or [] > > > > > > -def parse_xml(efactory, filename): > > +def parse_xml(enum_factory, filename): > > """Parse the XML file. Accumulate results into the efactory. > > > > This parser is a memory efficient iterative XML parser that returns > a list > > @@ -157,15 +157,15 @@ def parse_xml(efactory, filename): > > if event == 'end' and elem.tag == 'enums': > > type_ = elem.attrib.get('type') > > if type_ == 'enum': > > - enum = efactory(elem.attrib['name']) > > + enum = enum_factory(elem.attrib['name']) > > enum.values.extend([e.attrib['name'] for e in elem > > if e.tag == 'enum']) > > elif event == 'end' and elem.tag == 'extension': > > if elem.attrib['supported'] != 'vulkan': > > continue > > for e in elem.findall('.//enum[@extends][@offset]'): > > - enum = efactory(e.attrib['extends']) > > - enum.values.append(e.attrib['name']) > > + enum = enum_factory(e.attrib['extends']) > > + enum.values.append(e.attrib['name'],) > > > > root.clear() > > > > @@ -182,10 +182,10 @@ def main(): > > > > args = parser.parse_args() > > > > - efactory = EnumFactory(VkEnum) > > + enum_factory = NamedFactory(VkEnum) > > for filename in args.xml_files: > > - parse_xml(efactory, filename) > > - enums=sorted(efactory.registry.values(), key=lambda e: e.name) > > + parse_xml(enum_factory, filename) > > + enums=sorted(enum_factory.registry.values(), key=lambda e: e.name) > > > > for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.c')), > > (H_TEMPLATE, os.path.join(args.outdir, > 'vk_enum_to_str.h'))]: > > -- > > 2.5.0.400.gff86faf > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev