about summary refs log tree commit diff stats
path: root/shell/cell.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-04-17 23:40:49 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-04-17 23:52:52 -0700
commit97df52bf2fadf41fe73745c99730e0838881b0df (patch)
tree0915a0360a44faedcedc7d90f866a6b91685e053 /shell/cell.mu
parentc11ea74442e20070e1453e7e1ee27b7870407023 (diff)
downloadmu-97df52bf2fadf41fe73745c99730e0838881b0df.tar.gz
shell: ctrl-r runs on real screen without a trace
We run out of memory fairly early in the course of drawing a chessboard
on the whole screen.
Diffstat (limited to 'shell/cell.mu')
-rw-r--r--shell/cell.mu9
1 files changed, 3 insertions, 6 deletions
diff --git a/shell/cell.mu b/shell/cell.mu
index eb95f2ee..8804c686 100644
--- a/shell/cell.mu
+++ b/shell/cell.mu
@@ -84,8 +84,7 @@ fn new-float out: (addr handle cell), n: float {
   initialize-float out, n
 }
 
-fn allocate-pair _out: (addr handle cell) {
-  var out/eax: (addr handle cell) <- copy _out
+fn allocate-pair out: (addr handle cell) {
   allocate out
   # new cells have type pair by default
 }
@@ -133,8 +132,6 @@ fn allocate-screen _out: (addr handle cell) {
   var out/eax: (addr handle cell) <- copy _out
   allocate out
   var out-addr/eax: (addr cell) <- lookup *out
-  var dest-ah/ecx: (addr handle screen) <- get out-addr, screen-data
-  allocate dest-ah
   var type/ecx: (addr int) <- get out-addr, type
   copy-to *type, 5/screen
 }
@@ -144,6 +141,7 @@ fn new-fake-screen _out: (addr handle cell), width: int, height: int {
   allocate-screen out
   var out-addr/eax: (addr cell) <- lookup *out
   var dest-ah/eax: (addr handle screen) <- get out-addr, screen-data
+  allocate dest-ah
   var dest-addr/eax: (addr screen) <- lookup *dest-ah
   initialize-screen dest-addr, width, height
 }
@@ -165,8 +163,6 @@ fn allocate-keyboard _out: (addr handle cell) {
   var out/eax: (addr handle cell) <- copy _out
   allocate out
   var out-addr/eax: (addr cell) <- lookup *out
-  var dest-ah/ecx: (addr handle gap-buffer) <- get out-addr, keyboard-data
-  allocate dest-ah
   var type/ecx: (addr int) <- get out-addr, type
   copy-to *type, 6/keyboard
 }
@@ -176,6 +172,7 @@ fn new-fake-keyboard _out: (addr handle cell), capacity: int {
   allocate-keyboard out
   var out-addr/eax: (addr cell) <- lookup *out
   var dest-ah/eax: (addr handle gap-buffer) <- get out-addr, keyboard-data
+  allocate dest-ah
   var dest-addr/eax: (addr gap-buffer) <- lookup *dest-ah
   initialize-gap-buffer dest-addr, capacity
 }