@@ -5,24 +5,37 @@ Subject: [PATCH 5/6] Shrink size of static binary search tree
55
66This also makes it more efficient on the data cache.
77---
8- source/lexbor/core/sbst.h | 10 +++++-----
8+ source/lexbor/core/sbst.h | 19 +++++++++ +++++-----
99 source/lexbor/html/tokenizer/state.c | 2 +-
1010 utils/lexbor/html/tmp/tokenizer_res.h | 2 +-
1111 utils/lexbor/html/tokenizer_entities_bst.py | 8 ++++----
1212 utils/lexbor/lexbor/LXB.py | 2 +-
13- 5 files changed, 12 insertions(+), 12 deletions(-)
13+ 5 files changed, 21 insertions(+), 12 deletions(-)
1414
1515diff --git a/source/lexbor/core/sbst.h b/source/lexbor/core/sbst.h
16- index b0fbc54..40e0e91 100644
16+ index b0fbc54..15a1d40 100644
1717--- a/source/lexbor/core/sbst.h
1818+++ b/source/lexbor/core/sbst.h
19- @@ -19,12 +19,12 @@ extern "C" {
19+ @@ -15,16 +15,25 @@ extern "C" {
20+
21+ #include "lexbor/core/base.h"
22+
23+ + #ifdef __has_attribute
24+ + # if __has_attribute(nonstring) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 15
25+ + # define LXB_NONSTRING __attribute__((nonstring))
26+ + # else
27+ + # define LXB_NONSTRING
28+ + # endif
29+ + #else
30+ + # define LXB_NONSTRING
31+ + #endif
32+
2033 typedef struct {
2134 lxb_char_t key;
2235
2336- void *value;
2437- size_t value_len;
25- + lxb_char_t value[6];
38+ + lxb_char_t value[6] LXB_NONSTRING ;
2639+ unsigned char value_len;
2740
2841- size_t left;
@@ -35,10 +48,10 @@ index b0fbc54..40e0e91 100644
3548 lexbor_sbst_entry_static_t;
3649
3750diff --git a/source/lexbor/html/tokenizer/state.c b/source/lexbor/html/tokenizer/state.c
38- index 70ca391..2f3414f 100644
51+ index 158aade..207b909 100644
3952--- a/source/lexbor/html/tokenizer/state.c
4053+++ b/source/lexbor/html/tokenizer/state.c
41- @@ -1815 ,7 +1815 ,7 @@ lxb_html_tokenizer_state_char_ref_named(lxb_html_tokenizer_t *tkz,
54+ @@ -1820 ,7 +1820 ,7 @@ lxb_html_tokenizer_state_char_ref_named(lxb_html_tokenizer_t *tkz,
4255 goto done;
4356 }
4457
@@ -61,7 +74,7 @@ index b3701d5..73ab66e 100644
6174 * Do not change this file!
6275 */
6376diff --git a/utils/lexbor/html/tokenizer_entities_bst.py b/utils/lexbor/html/tokenizer_entities_bst.py
64- index ee7dcb4..7cd1335 100755
77+ index 4fa0999..8bd83b2 100755
6578--- a/utils/lexbor/html/tokenizer_entities_bst.py
6679+++ b/utils/lexbor/html/tokenizer_entities_bst.py
6780@@ -1,6 +1,6 @@
@@ -98,7 +111,7 @@ index ee7dcb4..7cd1335 100755
98111+ "../../../source/lexbor/html/tokenizer/res.h",
99112 "data/entities.json");
100113diff --git a/utils/lexbor/lexbor/LXB.py b/utils/lexbor/lexbor/LXB.py
101- index 2370c66..c41e645 100755
114+ index 3e75812..b068ea3 100755
102115--- a/utils/lexbor/lexbor/LXB.py
103116+++ b/utils/lexbor/lexbor/LXB.py
104117@@ -27,7 +27,7 @@ class Temp:
@@ -111,5 +124,5 @@ index 2370c66..c41e645 100755
111124 fh.close()
112125
113126- -
114- 2.44 .0
127+ 2.49 .0
115128
0 commit comments