about summary refs log tree commit diff stats
path: root/010vm.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-02-17 10:09:48 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-02-17 10:09:48 -0800
commit3adc9e08715fb695b8a7f53d5cfb3db1bd434b05 (patch)
tree2336287ac111e0038fd01391ea9d4c57fe9a3f2b /010vm.cc
parent89500176d9ff86eedcc99c2d2d11b1ac96022c97 (diff)
downloadmu-3adc9e08715fb695b8a7f53d5cfb3db1bd434b05.tar.gz
2667 - redo container data structure
I've been gradually Greenspunning reagents. Just go all the way.
Diffstat (limited to '010vm.cc')
-rw-r--r--010vm.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/010vm.cc b/010vm.cc
index 758d8d26..970b88c5 100644
--- a/010vm.cc
+++ b/010vm.cc
@@ -148,10 +148,8 @@ void setup_types() {
 }
 void teardown_types() {
   for (map<type_ordinal, type_info>::iterator p = Type.begin(); p != Type.end(); ++p) {
-    for (long long int i = 0; i < SIZE(p->second.elements); ++i) {
-      delete p->second.elements.at(i);
-      delete p->second.element_type_names.at(i);
-    }
+    for (long long int i = 0; i < SIZE(p->second.elements); ++i)
+      p->second.elements.clear();
   }
   Type_ordinal.clear();
 }
@@ -180,9 +178,7 @@ struct type_info {
   string name;
   kind_of_type kind;
   long long int size;  // only if type is not primitive; primitives and addresses have size 1 (except arrays are dynamic)
-  vector<type_tree*> elements;
-  vector<string_tree*> element_type_names;
-  vector<string> element_names;
+  vector<reagent> elements;
   // End type_info Fields
   type_info() :kind(PRIMITIVE), size(0) {}
 };