aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-curses
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2017-03-07 23:53:03 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2017-03-08 12:55:06 +0100
commitf4da329a1afa4808cbd47182a86cc2b19bcaa984 (patch)
tree378ac7451880499471933703b5f7477a630eed33 /src/interface-curses
parent0a0d0b7cd9ce2942d5194762478a4e24cd05eca4 (diff)
downloadsciteco-f4da329a1afa4808cbd47182a86cc2b19bcaa984.tar.gz
undo stack reorganized into a stack of undo token lists
* in a flat list of undo tokens, we need to store the program counter (ie. command line position) that the undo token corresponds to. Since in general there is more than one undo token per input character, this stored PCs redundantly. * For input characters with no undo tokens (only applies to NOPs like space in the command line macro), this needs one more pointer than before. * In case of 1 undo token per input character, the new implementation uses approx. the same memory. * In the most common case of more than one undo token per input character, this saves at least 4 bytes per undo token. * In large macros and long loops the effect is especially pronounced. E.g. 500000<%A> will use 8MB less memory with the new implementation.
Diffstat (limited to 'src/interface-curses')
0 files changed, 0 insertions, 0 deletions