diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-12-05 07:38:41 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-12-12 10:51:15 -0700 |
| commit | 69262028cde64d9e45c8052fdf0aeabce40c1355 (patch) | |
| tree | 502ee44979835fd75473999f8a6d648b87fab048 /scripts/parameter_validation_generator.py | |
| parent | dba95552978423417af16ecf6e473d9773c7d76a (diff) | |
| download | usermoji-69262028cde64d9e45c8052fdf0aeabce40c1355.tar.xz | |
layers: Fix param_val codegen for arrays of structs
New extensions exposed a hole where arrays of structs were not
getting deferenced correctly.
Change-Id: Ia2474babee10f25c1446dfe58b5bd9778d3c9abc
Diffstat (limited to 'scripts/parameter_validation_generator.py')
| -rw-r--r-- | scripts/parameter_validation_generator.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py index 047405d9..7c78b5f6 100644 --- a/scripts/parameter_validation_generator.py +++ b/scripts/parameter_validation_generator.py @@ -801,8 +801,12 @@ class ParamCheckerOutputGenerator(OutputGenerator): expr.append(indent + '{') indent = self.incIndent(indent) # Prefix for value name to display in error message - memberNamePrefix = '{}{}[{}].'.format(prefix, value.name, indexName) - memberDisplayNamePrefix = ('{}[%i].'.format(valueDisplayName), indexName) + if value.ispointer == 2: + memberNamePrefix = '{}{}[{}]->'.format(prefix, value.name, indexName) + memberDisplayNamePrefix = ('{}[%i]->'.format(valueDisplayName), indexName) + else: + memberNamePrefix = '{}{}[{}].'.format(prefix, value.name, indexName) + memberDisplayNamePrefix = ('{}[%i].'.format(valueDisplayName), indexName) else: memberNamePrefix = '{}{}->'.format(prefix, value.name) memberDisplayNamePrefix = '{}->'.format(valueDisplayName) @@ -821,6 +825,8 @@ class ParamCheckerOutputGenerator(OutputGenerator): def genFuncBody(self, funcName, values, valuePrefix, displayNamePrefix, structTypeName): lines = [] # Generated lines of code unused = [] # Unused variable names + if funcName == "vkRegisterObjectsNVX": + indent = 0 for value in values: usedLines = [] lenParam = None @@ -925,6 +931,8 @@ class ParamCheckerOutputGenerator(OutputGenerator): usedLines.append('skipCall |= validate_bool32(report_data, "{}", {ppp}"{}"{pps}, {}{});\n'.format(funcName, valueDisplayName, valuePrefix, value.name, **postProcSpec)) elif value.israngedenum: enumRange = self.enumRanges[value.type] + if value.type == "VkObjectEntryTypeNVX": + garbage = 2 usedLines.append('skipCall |= validate_ranged_enum(report_data, "{}", {ppp}"{}"{pps}, "{}", {}, {}, {}{});\n'.format(funcName, valueDisplayName, value.type, enumRange[0], enumRange[1], valuePrefix, value.name, **postProcSpec)) # # If this is a struct, see if it contains members that need to be checked |
