diff options
Diffstat (limited to 'src/wasm-type-printing.h')
-rw-r--r-- | src/wasm-type-printing.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/wasm-type-printing.h b/src/wasm-type-printing.h index fcf05db17..685d488fd 100644 --- a/src/wasm-type-printing.h +++ b/src/wasm-type-printing.h @@ -67,13 +67,23 @@ struct DefaultTypeNameGenerator template<typename FallbackGenerator = DefaultTypeNameGenerator> struct IndexedTypeNameGenerator : TypeNameGeneratorBase<IndexedTypeNameGenerator<FallbackGenerator>> { - FallbackGenerator fallback; + DefaultTypeNameGenerator defaultGenerator; + FallbackGenerator& fallback; std::unordered_map<HeapType, TypeNames> names; - template<typename T> IndexedTypeNameGenerator(T& types) { + + template<typename T> + IndexedTypeNameGenerator(T& types, + FallbackGenerator& fallback, + const std::string& prefix = "") + : fallback(fallback) { for (size_t i = 0; i < types.size(); ++i) { - names.insert({types[i], {std::to_string(i), {}}}); + names.insert({types[i], {prefix + std::to_string(i), {}}}); } } + template<typename T> + IndexedTypeNameGenerator(T& types, const std::string& prefix = "") + : IndexedTypeNameGenerator(types, defaultGenerator, prefix) {} + TypeNames getNames(HeapType type) { if (auto it = names.find(type); it != names.end()) { return it->second; |