diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-02-20 20:22:13 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-02-20 20:22:13 -0800 |
commit | eaa75c87c5b9ffb34ebd8c2ea0f1682dfcad336a (patch) | |
tree | 354f3e966bcb5ebc5326b6fe7a12a1312aaebdd3 /cpp/012run | |
parent | 916ae8f5d64995f786ea5610affdd004258e8eb9 (diff) | |
download | mu-eaa75c87c5b9ffb34ebd8c2ea0f1682dfcad336a.tar.gz |
800
Diffstat (limited to 'cpp/012run')
-rw-r--r-- | cpp/012run | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cpp/012run b/cpp/012run index 5d0e28cf..63ffdff1 100644 --- a/cpp/012run +++ b/cpp/012run @@ -59,7 +59,7 @@ vector<int> read_memory(reagent x) { void write_memory(reagent x, vector<int> 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 +} |