diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/.traces/new_array | 1 | ||||
-rw-r--r-- | cpp/026new | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/cpp/.traces/new_array b/cpp/.traces/new_array index 6070d166..803f2c6e 100644 --- a/cpp/.traces/new_array +++ b/cpp/.traces/new_array @@ -17,6 +17,7 @@ after-brace/0: new ... after-brace/0: subtract ... run/0: instruction main/0 mem/0: storing 1000 in location 1 +mem/0: array size is 5 run/0: instruction main/1 mem/0: storing 1005 in location 2 run/0: instruction main/2 diff --git a/cpp/026new b/cpp/026new index 1991be5b..e541d923 100644 --- a/cpp/026new +++ b/cpp/026new @@ -52,6 +52,8 @@ case NEW: { if (instructions[pc].ingredients.size() > 1) { // array vector<int> capacity = read_memory(instructions[pc].ingredients[1]); + trace("mem") << "array size is " << capacity[0]; + Memory[Current_routine.alloc] = capacity[0]; Current_routine.alloc += capacity[0]*size_of(types); } else { @@ -67,4 +69,8 @@ recipe main [ 2:address:integer/raw <- new integer:type 3:integer/raw <- subtract 2:address:integer/raw, 1:address:array:integer/raw ] ++run: instruction main/0 ++mem: array size is 5 ++run: instruction main/1 ++run: instruction main/2 +mem: storing 5 in location 3 |