layers: Cleaner optional allocator pointers check
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index 128ca0d..4bc0202 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -963,19 +963,24 @@
         else:
             # Special case for optional internal allocation function pointers.
             if (value.type, value.name) == ('PFN_vkInternalAllocationNotification', 'pfnInternalAllocation'):
-                vuid = '"VUID-VkAllocationCallbacks-pfnInternalAllocation-00635"'
-                # Alternate names replacing pfnInternalAllocation with pfnInternalFree.
-                other_name = 'pfnInternalFree'
-                other_print_name = valuePrintName[:-len(value.name)] + other_name
-                # Combined check.
-                checkExpr.append('if (({}{}) != NULL || ({}{}) != NULL)'.format(prefix, value.name, prefix, other_name))
-                checkExpr.append('{')
-                local_indent = self.incIndent('')
-                # Function pointers need a reinterpret_cast to void*
-                checkExpr.append(local_indent + 'skip |= validate_required_pointer("{}", {ppp}"{}"{pps}, reinterpret_cast<const void*>({}{}), {});\n'.format(funcPrintName, valuePrintName, prefix, value.name, vuid, **postProcSpec))
-                checkExpr.append(local_indent + 'skip |= validate_required_pointer("{}", {ppp}"{}"{pps}, reinterpret_cast<const void*>({}{}), {});\n'.format(funcPrintName, other_print_name, prefix, other_name, vuid, **postProcSpec))
-                checkExpr.append('}\n')
+                checkExpr.extend(self.internalAllocationCheck(funcPrintName, prefix, value.name, 'pfnInternalFree', postProcSpec))
+            elif (value.type, value.name) == ('PFN_vkInternalFreeNotification', 'pfnInternalFree'):
+                checkExpr.extend(self.internalAllocationCheck(funcPrintName, prefix, value.name, 'pfnInternalAllocation', postProcSpec))
         return checkExpr
+
+    #
+    # Generate internal allocation function pointer check.
+    def internalAllocationCheck(self, funcPrintName, prefix, name, complementaryName, postProcSpec):
+        checkExpr = []
+        vuid = '"VUID-VkAllocationCallbacks-pfnInternalAllocation-00635"'
+        checkExpr.append('if ({}{} != NULL)'.format(prefix, name))
+        checkExpr.append('{')
+        local_indent = self.incIndent('')
+        # Function pointers need a reinterpret_cast to void*
+        checkExpr.append(local_indent + 'skip |= validate_required_pointer("{}", {ppp}"{}{}"{pps}, reinterpret_cast<const void*>({}{}), {});\n'.format(funcPrintName, prefix, complementaryName, prefix, complementaryName, vuid, **postProcSpec))
+        checkExpr.append('}\n')
+        return checkExpr
+
     #
     # Process struct member validation code, performing name substitution if required
     def processStructMemberCode(self, line, funcName, memberNamePrefix, memberDisplayNamePrefix, postProcSpec):