aboutsummaryrefslogtreecommitdiff
path: root/lpprint.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-05-29 09:39:03 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-05-29 09:39:03 -0300
commit44fab2a44d06a956c3121ceba2b39ca7b00dc428 (patch)
tree9f492ba2ebaa4fb3cf6554fcb63f3fe026d43a5d /lpprint.c
parent460a35cbcb33fbc56f5a658b96a793b9bb8963e9 (diff)
downloadlpeg-44fab2a44d06a956c3121ceba2b39ca7b00dc428.tar.gz
lpeg-44fab2a44d06a956c3121ceba2b39ca7b00dc428.tar.bz2
lpeg-44fab2a44d06a956c3121ceba2b39ca7b00dc428.zip
Code size stored in code itself
Most patterns do not have code, as they are not directly used for a match; they are created only to compose larger patterns. So, we shouldn't waste space to store the size of their code, as a NULL pointer already indicates that the size is zero.
Diffstat (limited to 'lpprint.c')
-rw-r--r--lpprint.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lpprint.c b/lpprint.c
index 3e7e7f2..54a3da7 100644
--- a/lpprint.c
+++ b/lpprint.c
@@ -137,8 +137,9 @@ void printinst (const Instruction *op, const Instruction *p) {
137} 137}
138 138
139 139
140void printpatt (Instruction *p, int n) { 140void printpatt (Instruction *p) {
141 Instruction *op = p; 141 Instruction *op = p;
142 uint n = op[-1].codesize - 1;
142 while (p < op + n) { 143 while (p < op + n) {
143 printinst(op, p); 144 printinst(op, p);
144 p += sizei(p); 145 p += sizei(p);