diff options
author | Rickard Green <[email protected]> | 2014-08-28 21:30:44 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2014-08-28 21:30:44 +0200 |
commit | e59ea3efb5eafcda94fec0f838f2062db47acbcd (patch) | |
tree | e86f4e1a66a18194446a294b2fe3caae1de33b02 /erts/emulator/beam/erl_gc.c | |
parent | 13758c27667f2a8859796baf0a19ca4d759390d5 (diff) | |
parent | feb45017da36be78d4c5784d758ede619fa7bfd3 (diff) | |
download | otp-e59ea3efb5eafcda94fec0f838f2062db47acbcd.tar.gz otp-e59ea3efb5eafcda94fec0f838f2062db47acbcd.tar.bz2 otp-e59ea3efb5eafcda94fec0f838f2062db47acbcd.zip |
Merge branch 'maint'
* maint:
add enif_schedule_nif() to NIF API
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r-- | erts/emulator/beam/erl_gc.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c index aa15d2cc57..0db42d4325 100644 --- a/erts/emulator/beam/erl_gc.c +++ b/erts/emulator/beam/erl_gc.c @@ -2018,6 +2018,20 @@ setup_rootset(Process *p, Eterm *objv, int nobj, Rootset *rootset) roots[n].sz = 1; n++; } + + /* + * If a NIF has saved arguments, they need to be added + */ + if (ERTS_PROC_GET_NIF_TRAP_EXPORT(p)) { + Eterm* argv; + int argc; + if (erts_setup_nif_gc(p, &argv, &argc)) { + roots[n].v = argv; + roots[n].sz = argc; + n++; + } + } + ASSERT(n <= rootset->size); mp = p->msg.first; |