Browse Source

FFI: Fix compilation of reference field access.

Mike Pall 11 years ago
parent
commit
f948fe0c27
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/lj_crecord.c

+ 4 - 1
src/lj_crecord.c

@@ -848,8 +848,11 @@ again:
 
 
   /* Resolve reference for field. */
   /* Resolve reference for field. */
   ct = ctype_get(cts, sid);
   ct = ctype_get(cts, sid);
-  if (ctype_isref(ct->info))
+  if (ctype_isref(ct->info)) {
     ptr = emitir(IRT(IR_XLOAD, IRT_PTR), ptr, 0);
     ptr = emitir(IRT(IR_XLOAD, IRT_PTR), ptr, 0);
+    sid = ctype_cid(ct->info);
+    ct = ctype_get(cts, sid);
+  }
 
 
   while (ctype_isattrib(ct->info))
   while (ctype_isattrib(ct->info))
     ct = ctype_child(cts, ct);  /* Skip attributes. */
     ct = ctype_child(cts, ct);  /* Skip attributes. */