about summary refs log tree commit diff stats
path: root/cpp/019address
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-03-25 19:06:32 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-03-25 19:47:17 -0700
commite853b94e93f0a525c857eff97b5ed3d7e9fecdac (patch)
treea91449a1497a7cbb3433cb41d8d10c966a0c809e /cpp/019address
parent6de26237ff5c596084caea6e0a9158c22692f566 (diff)
downloadmu-e853b94e93f0a525c857eff97b5ed3d7e9fecdac.tar.gz
971
Diffstat (limited to 'cpp/019address')
-rw-r--r--cpp/019address10
1 files changed, 7 insertions, 3 deletions
diff --git a/cpp/019address b/cpp/019address
index c487dac6..6d697cb5 100644
--- a/cpp/019address
+++ b/cpp/019address
@@ -137,14 +137,16 @@ case GET: {
   size_t offset = instructions[pc].ingredients[1].value;
   int src = base_address;
   for (size_t i = 0; i < offset; ++i) {
-    src += size_of(reagent(Type[base_type].elements[i][0]));
+    reagent tmp;
+    tmp.types.push_back(Type[base_type].elements[i][0]);
+    src += size_of(tmp);
   }
   trace("run") << "address to copy is " << src;
   assert(Type[base_type].is_record);
   assert(Type[base_type].elements.size() > offset);
   int src_type = Type[base_type].elements[offset][0];
   trace("run") << "its type is " << src_type;
-  reagent tmp(src_type);
+  reagent tmp;
   tmp.set_value(src);
   tmp.types.push_back(src_type);
   vector<int> result(read_memory(tmp));
@@ -178,7 +180,9 @@ case GET_ADDRESS: {
   size_t offset = instructions[pc].ingredients[1].value;
   int src = base_address;
   for (size_t i = 0; i < offset; ++i) {
-    src += size_of(reagent(Type[base_type].elements[i][0]));
+    reagent tmp;
+    tmp.types.push_back(Type[base_type].elements[i][0]);
+    src += size_of(tmp);
   }
   trace("run") << "address to copy is " << src;
   vector<int> result;