aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_emu.c
diff options
context:
space:
mode:
authorRichard Carlsson <[email protected]>2019-01-28 19:05:28 +0100
committerRichard Carlsson <[email protected]>2019-01-28 19:09:43 +0100
commitea0e763e953f9c7d1fa9c142f24cb95f56119c56 (patch)
tree9c2f1d4a7725a5168633f9370d7cebad054c851b /erts/emulator/beam/beam_emu.c
parent87da7b5be69de01e65df566c6e35064381d1144d (diff)
downloadotp-ea0e763e953f9c7d1fa9c142f24cb95f56119c56.tar.gz
otp-ea0e763e953f9c7d1fa9c142f24cb95f56119c56.tar.bz2
otp-ea0e763e953f9c7d1fa9c142f24cb95f56119c56.zip
Add -ztma option for enabling tuple calls
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r--erts/emulator/beam/beam_emu.c5
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];