From 012cf9c86cf91cb8354e229bde335592d41b84b2 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 27 Apr 2023 10:32:39 -0300 Subject: Compact charsets used in trees, too. --- lptree.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lptree.h') diff --git a/lptree.h b/lptree.h index aa331d2..b76c235 100644 --- a/lptree.h +++ b/lptree.h @@ -3,7 +3,7 @@ #define lptree_h -#include "lptypes.h" +#include "lptypes.h" /* @@ -11,7 +11,7 @@ */ typedef enum TTag { TChar = 0, /* 'n' = char */ - TSet, /* the set is stored in next CHARSETSIZE bytes */ + TSet, /* the set is encoded in 'u.set' and the next 'u.set.size' bytes */ TAny, TTrue, TFalse, @@ -52,6 +52,11 @@ typedef struct TTree { union { int ps; /* occasional second child */ int n; /* occasional counter */ + struct { + byte offset; /* compact set offset (in bytes) */ + byte size; /* compact set size (in bytes) */ + byte deflt; /* default value */ + } set; /* for compact sets */ } u; } TTree; -- cgit v1.2.3-55-g6feb