1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:57:34 +00:00

LibWeb: Make sure we do not generate duplicate variable names

This commit is contained in:
Kenneth Myhra 2023-07-06 19:35:12 +02:00 committed by Andreas Kling
parent 12ff48047f
commit 90fdd598c2

View file

@ -776,12 +776,14 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
@parameter.type.name@ @cpp_name@ {}; @parameter.type.name@ @cpp_name@ {};
)~~~"); )~~~");
auto* current_dictionary = &interface.dictionaries.find(parameter.type->name())->value; auto* current_dictionary = &interface.dictionaries.find(parameter.type->name())->value;
// FIXME: This (i) is a hack to make sure we don't generate duplicate variable names.
static auto i = 0;
while (true) { while (true) {
for (auto& member : current_dictionary->members) { for (auto& member : current_dictionary->members) {
dictionary_generator.set("member_key", member.name); dictionary_generator.set("member_key", member.name);
auto member_js_name = make_input_acceptable_cpp(member.name.to_snakecase()); auto member_js_name = make_input_acceptable_cpp(member.name.to_snakecase());
auto member_value_name = DeprecatedString::formatted("{}_value", member_js_name); auto member_value_name = DeprecatedString::formatted("{}_value", member_js_name);
auto member_property_value_name = DeprecatedString::formatted("{}_property_value", member_js_name); auto member_property_value_name = DeprecatedString::formatted("{}_property_value_{}", member_js_name, i);
dictionary_generator.set("member_name", member_js_name); dictionary_generator.set("member_name", member_js_name);
dictionary_generator.set("member_value_name", member_value_name); dictionary_generator.set("member_value_name", member_value_name);
dictionary_generator.set("member_property_value_name", member_property_value_name); dictionary_generator.set("member_property_value_name", member_property_value_name);
@ -821,6 +823,7 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter
} }
)~~~"); )~~~");
} }
i++;
} }
if (current_dictionary->parent_name.is_null()) if (current_dictionary->parent_name.is_null())
break; break;