From 2346225093034296734403c433333ab806a7749a Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Thu, 20 Apr 2023 19:08:17 -0700 Subject: [PATCH] c-writer.cc: cleanup name lookups to happen consistently in one place --- src/c-writer.cc | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/c-writer.cc b/src/c-writer.cc index b1ba1cb8a2..c7a5bdae0c 100644 --- a/src/c-writer.cc +++ b/src/c-writer.cc @@ -297,6 +297,7 @@ class CWriter { static void SerializeFuncType(const FuncType&, std::string&); std::string GetGlobalName(ModuleFieldType, const std::string&) const; + std::string GetLocalName(const std::string&, bool is_label) const; void Indent(int size = INDENT_SIZE); void Dedent(int size = INDENT_SIZE); @@ -910,6 +911,13 @@ std::string CWriter::DefineLocalScopeName(std::string_view name, kLocalSymbolPrefix + MangleName(StripLeadingDollar(name))); } +std::string CWriter::GetLocalName(const std::string& name, + bool is_label) const { + std::string mangled = name + (is_label ? kLabelSuffix : kParamSuffix); + assert(local_sym_map_.count(mangled) == 1); + return local_sym_map_.at(mangled); +} + std::string CWriter::DefineParamName(std::string_view name) { return DefineLocalScopeName(name, false); } @@ -1021,21 +1029,15 @@ void CWriter::Write(std::string_view s) { } void CWriter::Write(const ParamName& name) { - std::string mangled = name.name + kParamSuffix; - assert(local_sym_map_.count(mangled) == 1); - Write(local_sym_map_[mangled]); + Write(GetLocalName(name.name, false)); } void CWriter::Write(const LabelName& name) { - std::string mangled = name.name + kLabelSuffix; - assert(local_sym_map_.count(mangled) == 1); - Write(local_sym_map_[mangled]); + Write(GetLocalName(name.name, true)); } void CWriter::Write(const GlobalName& name) { - std::string mangled = name.name + MangleField(name.type); - assert(global_sym_map_.count(mangled) == 1); - Write(global_sym_map_.at(mangled)); + Write(GetGlobalName(name.type, name.name)); } void CWriter::Write(const ExternalPtr& name) {