aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2010-12-09 22:48:01 +0100
committerMike Pall <mike>2010-12-09 22:48:01 +0100
commit09e2bdbb0a55ee326b1520069ed5409bebcc331d (patch)
tree758d81f0ae2ce86500e23e4665a74bd3fb85f0de
parent870bcd76405a4b695055a422c8a83956ae7afa7c (diff)
downloadluajit-09e2bdbb0a55ee326b1520069ed5409bebcc331d.tar.gz
luajit-09e2bdbb0a55ee326b1520069ed5409bebcc331d.tar.bz2
luajit-09e2bdbb0a55ee326b1520069ed5409bebcc331d.zip
FFI: Always specialize to the field name for struct access.
-rw-r--r--src/lj_crecord.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index 566c064b..a543ffd1 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -352,6 +352,8 @@ void LJ_FASTCALL recff_cdata_index(jit_State *J, RecordFFData *rd)
352 } 352 }
353 } else if (tref_isstr(idx)) { 353 } else if (tref_isstr(idx)) {
354 GCstr *name = strV(&rd->argv[1]); 354 GCstr *name = strV(&rd->argv[1]);
355 /* Always specialize to the field name. */
356 emitir(IRTG(IR_EQ, IRT_STR), idx, lj_ir_kstr(J, name));
355 if (ctype_isstruct(ct->info)) { 357 if (ctype_isstruct(ct->info)) {
356 CTSize fofs; 358 CTSize fofs;
357 CType *fct = lj_ctype_getfield(cts, ct, name, &fofs); 359 CType *fct = lj_ctype_getfield(cts, ct, name, &fofs);