diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-08-21 16:43:03 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-08-21 16:43:03 +0200 |
commit | ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9 (patch) | |
tree | 222b68e94768df505415a004a3e1633cc749c8f6 /erts/emulator/beam | |
parent | a499a783bd7edbba856e61e490137dea4dab67e3 (diff) | |
parent | ed5a0b9cdf6a7e87cec1a50c6e9adb29698ce8d9 (diff) | |
download | otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.tar.gz otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.tar.bz2 otp-ae9c3f7b755d5ebf4e65146d81d04c2d48b4d9c9.zip |
Merge branch 'maint'
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/bif.tab | 4 | ||||
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 19 |
2 files changed, 23 insertions, 0 deletions
diff --git a/erts/emulator/beam/bif.tab b/erts/emulator/beam/bif.tab index 011e49f1fe..e68b8e6274 100644 --- a/erts/emulator/beam/bif.tab +++ b/erts/emulator/beam/bif.tab @@ -601,6 +601,10 @@ bif maps:values/1 bif erts_internal:cmp_term/2 # +# New in 17.1. +# +bif erlang:fun_info_mfa/1 +# # Obsolete # diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index 6915765dab..6efe9d9550 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -3055,6 +3055,25 @@ fun_info_2(BIF_ALIST_2) return TUPLE2(hp, what, val); } +BIF_RETTYPE +fun_info_mfa_1(BIF_ALIST_1) +{ + Process* p = BIF_P; + Eterm fun = BIF_ARG_1; + Eterm* hp; + + if (is_fun(fun)) { + ErlFunThing* funp = (ErlFunThing *) fun_val(fun); + hp = HAlloc(p, 4); + BIF_RET(TUPLE3(hp,funp->fe->module,funp->fe->address[-2],make_small(funp->arity))); + } else if (is_export(fun)) { + Export* exp = (Export *) ((UWord) (export_val(fun))[1]); + hp = HAlloc(p, 4); + BIF_RET(TUPLE3(hp,exp->code[0],exp->code[1],make_small(exp->code[2]))); + } + BIF_ERROR(p, BADARG); +} + BIF_RETTYPE is_process_alive_1(BIF_ALIST_1) { if(is_internal_pid(BIF_ARG_1)) { |