aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPetr Kraus <petr_kraus@email.cz>2019-08-18 16:22:59 +0200
committerMark Lobodzinski <mark@lunarg.com>2019-08-22 09:42:27 -0600
commit956e9716a0a1ef423c36532a7bdcecbb668ef583 (patch)
tree1b0d7e0f56636be76f1f41c9b8f56f5ecbf10f8d /scripts
parent08d510661c5c9a141dfc7b01e2c5484b3165a8f2 (diff)
downloadvulkan-validation-layers-956e9716a0a1ef423c36532a7bdcecbb668ef583.tar.gz
layers: Eliminate const_cast in safe_struct string
Diffstat (limited to 'scripts')
-rw-r--r--scripts/helper_file_generator.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index 288cc0c0a..638a51765 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -460,7 +460,7 @@ class HelperFileOutputGenerator(OutputGenerator):
safe_struct_helper_header += 'void *SafePnextCopy(const void *pNext);\n'
safe_struct_helper_header += 'void FreePnextChain(const void *head);\n'
safe_struct_helper_header += 'void FreePnextChain(void *head);\n'
- safe_struct_helper_header += 'const char *SafeStringCopy(const char *in_string);\n'
+ safe_struct_helper_header += 'char *SafeStringCopy(const char *in_string);\n'
safe_struct_helper_header += '\n'
safe_struct_helper_header += self.GenerateSafeStructHeader()
return safe_struct_helper_header
@@ -877,7 +877,7 @@ class HelperFileOutputGenerator(OutputGenerator):
# Construct Safe-struct helper functions
string_copy_proc = '\n\n'
- string_copy_proc += 'const char *SafeStringCopy(const char *in_string) {\n'
+ string_copy_proc += 'char *SafeStringCopy(const char *in_string) {\n'
string_copy_proc += ' if (nullptr == in_string) return nullptr;\n'
string_copy_proc += ' char* dest = new char[std::strlen(in_string) + 1];\n'
string_copy_proc += ' return std::strcpy(dest, in_string);\n'
@@ -1250,10 +1250,11 @@ class HelperFileOutputGenerator(OutputGenerator):
if m_type == 'char':
# Create deep copies of strings
if member.len:
- copy_strings += ' %s = new char *[in_struct->%s];\n' % (member.name, member.len)
+ copy_strings += ' char **tmp_%s = new char *[in_struct->%s];\n' % (member.name, member.len)
copy_strings += ' for (uint32_t i = 0; i < %s; ++i) {\n' % member.len
- copy_strings += ' (const_cast<const char **>(%s))[i] = SafeStringCopy(in_struct->%s[i]);\n' % (member.name, member.name)
+ copy_strings += ' tmp_%s[i] = SafeStringCopy(in_struct->%s[i]);\n' % (member.name, member.name)
copy_strings += ' }\n'
+ copy_strings += ' %s = tmp_%s;\n' % (member.name, member.name)
destruct_txt += ' if (%s) {\n' % member.name
destruct_txt += ' for (uint32_t i = 0; i < %s; ++i) {\n' % member.len