summaryrefslogtreecommitdiff
path: root/src/lj_cdata.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_cdata.c')
-rw-r--r--src/lj_cdata.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_cdata.c b/src/lj_cdata.c
index a3257249..af78d05e 100644
--- a/src/lj_cdata.c
+++ b/src/lj_cdata.c
@@ -94,10 +94,12 @@ collect_attrib:
94 if (ctype_ispointer(ct->info)) { 94 if (ctype_ispointer(ct->info)) {
95 CTSize sz = lj_ctype_size(cts, ctype_cid(ct->info)); /* Element size. */ 95 CTSize sz = lj_ctype_size(cts, ctype_cid(ct->info)); /* Element size. */
96 if (sz != CTSIZE_INVALID) { 96 if (sz != CTSIZE_INVALID) {
97 if (ctype_isptr(ct->info)) 97 if (ctype_isptr(ct->info)) {
98 p = (uint8_t *)cdata_getptr(p, ct->size); 98 p = (uint8_t *)cdata_getptr(p, ct->size);
99 else if ((ct->info & (CTF_VECTOR|CTF_COMPLEX))) 99 } else if ((ct->info & (CTF_VECTOR|CTF_COMPLEX))) {
100 if ((ct->info & CTF_COMPLEX)) idx &= 1;
100 *qual |= CTF_CONST; /* Valarray elements are constant. */ 101 *qual |= CTF_CONST; /* Valarray elements are constant. */
102 }
101 *pp = p + idx*(int32_t)sz; 103 *pp = p + idx*(int32_t)sz;
102 return ct; 104 return ct;
103 } 105 }