diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-11-01 18:14:18 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-11-01 18:14:18 -0800 |
commit | ed09f7384ad87e87e1035b948c7f88841570f292 (patch) | |
tree | 0a44bd97bca589f596ac6e816722945db8ffc139 /010vm.cc | |
parent | 6d79cc137b045ace341f666a67054bdeddef992e (diff) | |
download | mu-ed09f7384ad87e87e1035b948c7f88841570f292.tar.gz |
2339 - don't let dump_types modify Type
Diffstat (limited to '010vm.cc')
-rw-r--r-- | 010vm.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/010vm.cc b/010vm.cc index bdf4ec17..906a2cd1 100644 --- a/010vm.cc +++ b/010vm.cc @@ -392,7 +392,7 @@ string dump_types(const reagent& x) { void dump_types(type_tree* type, ostream& out) { // abbreviate a single-node tree to just its contents if (!type->left && !type->right) { - out << Type[type->value].name; + dump_type_name(type->value, out); return; } dump_types_tree(type, out); @@ -403,7 +403,7 @@ void dump_types_tree(type_tree* type, ostream& out) { if (type->left) dump_types_tree(type->left, out); else - out << Type[type->value].name; + dump_type_name(type->value, out); out << " : "; if (type->right) dump_types_tree(type->right, out); @@ -412,6 +412,13 @@ void dump_types_tree(type_tree* type, ostream& out) { out << ">"; } +void dump_type_name(recipe_ordinal type, ostream& out) { + if (Type.find(type) != Type.end()) + out << Type[type].name; + else + out << "?"; +} + string instruction::to_string() const { if (is_label) return label; ostringstream out; |