From eaa75c87c5b9ffb34ebd8c2ea0f1682dfcad336a Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Fri, 20 Feb 2015 20:22:13 -0800 Subject: 800 --- cpp/012run | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cpp/012run') diff --git a/cpp/012run b/cpp/012run index 5d0e28cf..63ffdff1 100644 --- a/cpp/012run +++ b/cpp/012run @@ -59,7 +59,7 @@ vector read_memory(reagent x) { void write_memory(reagent x, vector data) { int base = to_int(x.name); - size_t size = Type[x.types[0]].size; + size_t size = size_of(x.types[0]); if (size != data.size()) raise << "size mismatch in storing to " << x.to_string(); for (size_t offset = 0; offset < size; ++offset) { trace("mem") << "storing in location " << base+offset; @@ -74,3 +74,9 @@ int to_int(string n) { assert(*end == '\0'); return result; } + +int size_of(type_number x) { + type_info t = Type[x]; + if (!t.is_record && !t.is_array) return t.size; + return t.size; // TODO +} -- cgit 1.4.1-2-gfad0