diff options
author | alois31 <36605164+alois31@users.noreply.github.com> | 2023-05-15 14:23:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-15 15:23:16 +0300 |
commit | f3210cbf27c79ed4294f85271476c6433446102f (patch) | |
tree | 7b9ee914d49059cd94187940b16b86821cf15b53 /src/compose/table.h | |
parent | 64aaa7cda29196a9142dc8785c29201468429fe8 (diff) | |
download | xorg-lib-libxkbcommon-f3210cbf27c79ed4294f85271476c6433446102f.tar.gz |
In commit 1638409b22aef33d487863876ab214b949db4984, the number of
compose nodes was limited to 65535 to enable "future optimizations",
which apparently means slightly reduced memory usage due to fitting in
a uint16_t. At this time, it was mentioned that the author was not
aware of "any compose files which come close".
However, I'm one of the users that actually do require a larger number
of nodes for their compose file. Thus, use a uint32_t again and raise
the limit significantly.
Diffstat (limited to 'src/compose/table.h')
-rw-r--r-- | src/compose/table.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/compose/table.h b/src/compose/table.h index 6be4348..825a8e2 100644 --- a/src/compose/table.h +++ b/src/compose/table.h @@ -75,16 +75,17 @@ * \0 is so offset 0 points to an empty string). */ -/* Fits in uint16_t, also a good idea to have some limit. */ -#define MAX_COMPOSE_NODES 65535 +/* 7 nodes for every potential Unicode character and then some should be + * enough for all purposes. */ +#define MAX_COMPOSE_NODES (1 << 23) struct compose_node { xkb_keysym_t keysym; /* Offset into xkb_compose_table::nodes or 0. */ - uint16_t lokid; + uint32_t lokid; /* Offset into xkb_compose_table::nodes or 0. */ - uint16_t hikid; + uint32_t hikid; union { struct { @@ -95,7 +96,7 @@ struct compose_node { uint32_t _pad:31; bool is_leaf:1; /* Offset into xkb_compose_table::nodes or 0. */ - uint16_t eqkid; + uint32_t eqkid; } internal; struct { /* Offset into xkb_compose_table::utf8. */ |