From 0fdb77e86a2673e042fa809171472aea4b6ac2da Mon Sep 17 00:00:00 2001 From: Dustin Graves Date: Mon, 25 Apr 2016 15:54:16 -0600 Subject: layers: Add missing compute stage sType check The parameter_validation code generator was only generating sType checks for pointers to structures. There is one case where a non-pointer struct parameter needs to be validated: the VkComputePipelineCreateInfo::stage member of the vkCreateComputePipelines pCreateInfos parameter. The code generator has been updated to handle this case. Change-Id: I1e695fcc875574eae94912ceb6338428d7ed8b49 --- generator.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'generator.py') diff --git a/generator.py b/generator.py index 0bf6e95d..b5b96547 100644 --- a/generator.py +++ b/generator.py @@ -3488,10 +3488,15 @@ class ParamCheckerOutputGenerator(OutputGenerator): enumRange = self.enumRanges[value.type] usedLines.append('skipCall |= validate_ranged_enum_array(report_data, "{}", "{}", "{}", {}, {}, {pf}{}, {pf}{});\n'.format(funcName, valueDisplayName, value.type, enumRange[0], enumRange[1], lenParam.name, value.name, pf=valuePrefix)) # Non-pointer types - elif value.type in self.validatedStructs: - memberNamePrefix = '{}{}.'.format(valuePrefix, value.name) - memberDisplayNamePrefix = '{}.'.format(valueDisplayName) - usedLines.append(self.expandStructCode(self.validatedStructs[value.type], funcName, memberNamePrefix, memberDisplayNamePrefix, '', [])) + elif (value.type in self.structTypes) or (value.type in self.validatedStructs): + if value.type in self.structTypes: + stype = self.structTypes[value.type] + usedLines.append('skipCall |= validate_struct_type(report_data, "{}", "{}", "{sv}", &({}{vn}), {sv}, false);\n'.format( + funcName, valueDisplayName, valuePrefix, vn=value.name, sv=stype.value)) + if value.type in self.validatedStructs: + memberNamePrefix = '{}{}.'.format(valuePrefix, value.name) + memberDisplayNamePrefix = '{}.'.format(valueDisplayName) + usedLines.append(self.expandStructCode(self.validatedStructs[value.type], funcName, memberNamePrefix, memberDisplayNamePrefix, '', [])) elif value.type in self.handleTypes: if not self.isHandleOptional(value, None): usedLines.append('skipCall |= validate_required_handle(report_data, "{}", "{}", {}{});\n'.format(funcName, valueDisplayName, valuePrefix, value.name)) -- cgit v1.2.3