diff options
Diffstat (limited to 'src/lj_cdata.c')
-rw-r--r-- | src/lj_cdata.c | 6 |
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 | } |