aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2026-03-30 20:41:59 +0200
committerMike Pall <mike>2026-03-30 20:41:59 +0200
commite4c7d8b38040518d42599eef8ddb5e67aa967a9c (patch)
treea30db9d46799b434acfcf31f54fb538b41355733
parentf322ecb51e3cea06683cc201e8ce224ec42fdab8 (diff)
downloadluajit-e4c7d8b38040518d42599eef8ddb5e67aa967a9c.tar.gz
luajit-e4c7d8b38040518d42599eef8ddb5e67aa967a9c.tar.bz2
luajit-e4c7d8b38040518d42599eef8ddb5e67aa967a9c.zip
FFI: Shrink container of packed bitfield.v2.0master
Reported by Huang Haiyang. #1451
-rw-r--r--src/lj_cparse.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_cparse.c b/src/lj_cparse.c
index 45b05b36..f5c93d2e 100644
--- a/src/lj_cparse.c
+++ b/src/lj_cparse.c
@@ -1307,6 +1307,8 @@ static void cp_struct_layout(CPState *cp, CTypeID sid, CTInfo sattr)
1307 ct->info = CTINFO(CT_FIELD, ctype_cid(ct->info)); 1307 ct->info = CTINFO(CT_FIELD, ctype_cid(ct->info));
1308 ct->size = (bofs >> 3); /* Store field offset. */ 1308 ct->size = (bofs >> 3); /* Store field offset. */
1309 } else { 1309 } else {
1310 if (csz > amask+1 && bsz <= amask+1)
1311 csz = amask+1; /* Shrink container of packed bitfield. */
1310 ct->info = CTINFO(CT_BITFIELD, 1312 ct->info = CTINFO(CT_BITFIELD,
1311 (info & (CTF_QUAL|CTF_UNSIGNED|CTF_BOOL)) + 1313 (info & (CTF_QUAL|CTF_UNSIGNED|CTF_BOOL)) +
1312 (csz << (CTSHIFT_BITCSZ-3)) + (bsz << CTSHIFT_BITBSZ)); 1314 (csz << (CTSHIFT_BITCSZ-3)) + (bsz << CTSHIFT_BITBSZ));