Skip to content

Commit

Permalink
[tools] fixed settings getter generator
Browse files Browse the repository at this point in the history
use proper default error return values by type
  • Loading branch information
Armin Novak authored and hardening committed Dec 22, 2022
1 parent 22c47b7 commit 204c43a
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions tools/update-settings-tests
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ def write_getter_case(f, val):
f.write('\t\tcase FreeRDP_' + val + ':\n')
f.write('\t\t\treturn settings->' + val + ';\n\n')

def write_getter_body(f, values):
def write_getter_body(f, values, ret):
f.write('{\n')
f.write('\tWINPR_ASSERT(settings);\n\n')
f.write('\tswitch (id)\n')
Expand All @@ -470,7 +470,7 @@ def write_getter_body(f, values):
write_getter_case(f, val)
f.write('\t\tdefault:\n')
f.write('\t\t\tWLog_ERR(TAG, "[%s] Invalid key index %" PRIuz " [%s|%s]", __FUNCTION__, id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n')
f.write('\t\t\treturn FALSE;\n')
f.write('\t\t\treturn ' + ret + ';\n')
f.write('\t}\n')
f.write('}\n\n')

Expand All @@ -490,11 +490,18 @@ def write_getter(f, entry_dict, entry_type, entry_name):
f.write(' freerdp_settings_get_pointer_writable(rdpSettings* settings, size_t id)\n')
else:
f.write(' freerdp_settings_get_' + entry_name.lower() + '(const rdpSettings* settings, size_t id)\n')
write_getter_body(f, values)
if isString or isPointer:
ret = 'NULL';
elif 'bool' in entry_name:
ret = 'FALSE';
else:
ret = '0';

write_getter_body(f, values, ret)

if isString:
f.write('char* freerdp_settings_get_' + entry_name.lower() + '_writable(rdpSettings* settings, size_t id)\n')
write_getter_body(f, values)
write_getter_body(f, values, ret)

def write_setter_case(f, val, isString, isPointer):
f.write('\t\tcase FreeRDP_' + val + ':\n')
Expand Down

0 comments on commit 204c43a

Please sign in to comment.