summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2014-12-05 12:17:15 +0200
committerEli Zaretskii <eliz@gnu.org>2014-12-05 12:17:15 +0200
commitfcc4da3e5227f64b57e5e7ac497df28229b88f7d (patch)
treeae2dbadb71fb2552277410415a5753c8edf9a2ac /lisp/emacs-lisp
parent96e6fd3c155b1851e0acd477789535a45b8d3187 (diff)
downloademacs-fcc4da3e5227f64b57e5e7ac497df28229b88f7d.tar.gz
emacs-fcc4da3e5227f64b57e5e7ac497df28229b88f7d.tar.bz2
emacs-fcc4da3e5227f64b57e5e7ac497df28229b88f7d.zip
Reduce memory footprint of struct bidi_it by a factor of 5.
src/dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero. (struct bidi_stack): Reduce size by using bit fields and by packing sos, override, and isolate_status into a single 8-bit byte called 'flags'. src/bidi.c (ISOLATE_STATUS, OVERRIDE): New macros. (bidi_push_embedding_level): Construct flags from individual bits. Adapt to changes in prev_for_neutral and next_for_neutral members. (bidi_pop_embedding_level): Use ISOLATE_STATUS. Extract 'sos' from flags. Adapt to changes in prev_for_neutral, next_for_neutral, and last_strong members. (bidi_line_init): Initialize flags to zero. (bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets) (bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE.
Diffstat (limited to 'lisp/emacs-lisp')
0 files changed, 0 insertions, 0 deletions