layers: Validate structs embedded in structs
authorTobin Ehlis <tobin@lunarg.com>
Thu, 18 Dec 2014 16:29:58 +0000 (09:29 -0700)
committerCourtney Goeltzenleuchter <courtney@LunarG.com>
Thu, 5 Feb 2015 00:58:05 +0000 (17:58 -0700)
xgl_helper.py

index 4965121ad96ce3470ce8f009fd8dad988e6c725e..73bc07d16759cd443e5ad2750716e5ffba74a8e3 100755 (executable)
@@ -891,8 +891,11 @@ class StructWrapperGen:
                 if is_type(self.struct_dict[s][m]['type'], 'enum'):
                     sh_funcs.append('    if (!validate_%s(pStruct->%s))\n        return 0;' % (self.struct_dict[s][m]['type'], self.struct_dict[s][m]['name']))
                 # TODO : Need a little refinement to this code to make sure type of struct matches expected input (ptr, const...)
-                #if is_type(self.struct_dict[s][m]['type'], 'struct'):
-                #    sh_funcs.append('    if (!%s((%s)pStruct->%s))\n        return 0;' % (self._get_vh_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['full_type'], self.struct_dict[s][m]['name']))
+                if is_type(self.struct_dict[s][m]['type'], 'struct'):
+                    if (self.struct_dict[s][m]['ptr']):
+                        sh_funcs.append('    if (!%s((const %s*)pStruct->%s))\n        return 0;' % (self._get_vh_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['type'], self.struct_dict[s][m]['name']))
+                    else:
+                        sh_funcs.append('    if (!%s((const %s*)&pStruct->%s))\n        return 0;' % (self._get_vh_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['type'], self.struct_dict[s][m]['name']))
             sh_funcs.append("    return 1;\n}")
 
         return "\n".join(sh_funcs)