diff options
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index aa6e7d3de2..4351dda5a7 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -379,6 +379,7 @@ do { \ # define NOINLINE #endif +int tuple_module_apply; /* * The following functions are called directly by process_main(). @@ -2240,7 +2241,7 @@ apply(Process* p, Eterm* reg, BeamInstr *I, Uint stack_offset) if (is_not_atom(module)) { Eterm* tp; - if (is_not_tuple(module)) goto error; + if (!tuple_module_apply || is_not_tuple(module)) goto error; tp = tuple_val(module); if (arityval(tp[0]) < 1) goto error; this = module; @@ -2346,7 +2347,7 @@ fixed_apply(Process* p, Eterm* reg, Uint arity, */ if (is_not_atom(module)) { Eterm* tp; - if (is_not_tuple(module)) goto error; + if (!tuple_module_apply || is_not_tuple(module)) goto error; tp = tuple_val(module); if (arityval(tp[0]) < 1) goto error; module = tp[1]; |