diff options
author | Mike Pall <mike> | 2013-02-03 11:51:19 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2013-02-03 11:51:19 +0100 |
commit | fe9934feea0a8d580de19389f1a54d6cd4563d6b (patch) | |
tree | df5f18a64130edfac961b7e12586f008b62dc640 /src/lj_cconv.c | |
parent | 4eb4b8ab8471233d63ae9644cdf304b847b3bbdc (diff) | |
download | luajit2-fe9934feea0a8d580de19389f1a54d6cd4563d6b.tar.gz |
FFI: Fix handling of qualified transparent structs/unions.
Diffstat (limited to 'src/lj_cconv.c')
-rw-r--r-- | src/lj_cconv.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_cconv.c b/src/lj_cconv.c index 7b32e35d..c39da333 100644 --- a/src/lj_cconv.c +++ b/src/lj_cconv.c @@ -515,7 +515,8 @@ static void cconv_substruct_tab(CTState *cts, CType *d, uint8_t *dp, lj_cconv_bf_tv(cts, df, dp+df->size, tv); if ((d->info & CTF_UNION)) break; } else if (ctype_isxattrib(df->info, CTA_SUBTYPE)) { - cconv_substruct_tab(cts, ctype_child(cts, df), dp+df->size, t, ip, flags); + cconv_substruct_tab(cts, ctype_rawchild(cts, df), + dp+df->size, t, ip, flags); } /* Ignore all other entries in the chain. */ } } @@ -699,7 +700,8 @@ static void cconv_substruct_init(CTState *cts, CType *d, uint8_t *dp, lj_cconv_bf_tv(cts, df, dp+df->size, o + i); if ((d->info & CTF_UNION)) break; } else if (ctype_isxattrib(df->info, CTA_SUBTYPE)) { - cconv_substruct_init(cts, ctype_child(cts, df), dp+df->size, o, len, ip); + cconv_substruct_init(cts, ctype_rawchild(cts, df), + dp+df->size, o, len, ip); } /* Ignore all other entries in the chain. */ } } |