summaryrefslogtreecommitdiff
path: root/src/lj_obj.h
diff options
context:
space:
mode:
authorMike Pall <mike>2012-06-20 18:24:49 +0200
committerMike Pall <mike>2012-06-20 18:28:25 +0200
commit8b71ab108053c12bc2de9c1de0f786387a2b75e5 (patch)
tree98be8d9138d3cb13dac67f5f7621b0bf09bb0fc7 /src/lj_obj.h
parente9e45313e737579bc6db4f74942bcd66e95532c1 (diff)
downloadluajit2-8b71ab108053c12bc2de9c1de0f786387a2b75e5.tar.gz
FFI: Check for __new metamethod when calling a constructor.
Diffstat (limited to 'src/lj_obj.h')
-rw-r--r--src/lj_obj.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lj_obj.h b/src/lj_obj.h
index 43ed9204..d7e8ec09 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -437,6 +437,12 @@ enum {
#define setvmstate(g, st) ((g)->vmstate = ~LJ_VMST_##st)
/* Metamethods. ORDER MM */
+#ifdef LJ_HASFFI
+#define MMDEF_FFI(_) _(new)
+#else
+#define MMDEF_FFI(_)
+#endif
+
#ifdef LUAJIT_ENABLE_LUA52COMPAT
#define MMDEF_52(_) _(pairs) _(ipairs)
#else
@@ -450,7 +456,7 @@ enum {
/* The following must be in ORDER ARITH. */ \
_(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \
/* The following are used in the standard libraries. */ \
- _(metatable) _(tostring) MMDEF_52(_)
+ _(metatable) _(tostring) MMDEF_FFI(_) MMDEF_52(_)
typedef enum {
#define MMENUM(name) MM_##name,