diff options
author | Sverker Eriksson <sverker@erlang.org> | 2017-04-11 16:11:37 +0200 |
---|---|---|
committer | Sverker Eriksson <sverker@erlang.org> | 2017-04-11 16:11:37 +0200 |
commit | 37bdfb3b5b56c2311db1780b052b7e2c0f139cef (patch) | |
tree | a47c34ab8c34e4d2470f44019fd38c512493f17b | |
parent | 5e8f498b810aeae9cb4c9c3715fe62a33b84cdde (diff) | |
download | erlang-37bdfb3b5b56c2311db1780b052b7e2c0f139cef.tar.gz |
erts: Init refc=1 in erts_bin_drv_alloc*
-rw-r--r-- | erts/emulator/beam/dist.c | 1 | ||||
-rw-r--r-- | erts/emulator/beam/erl_binary.h | 2 | ||||
-rw-r--r-- | erts/emulator/beam/erl_nif.c | 1 | ||||
-rw-r--r-- | erts/emulator/beam/io.c | 1 |
4 files changed, 2 insertions, 3 deletions
diff --git a/erts/emulator/beam/dist.c b/erts/emulator/beam/dist.c index d1c2da9074..49a48ac02e 100644 --- a/erts/emulator/beam/dist.c +++ b/erts/emulator/beam/dist.c @@ -629,7 +629,6 @@ alloc_dist_obuf(Uint size) ErtsDistOutputBuf *obuf; Uint obuf_size = sizeof(ErtsDistOutputBuf)+sizeof(byte)*(size-1); Binary *bin = erts_bin_drv_alloc(obuf_size); - erts_refc_init(&bin->refc, 1); obuf = (ErtsDistOutputBuf *) &bin->orig_bytes[0]; #ifdef DEBUG obuf->dbg_pattern = ERTS_DIST_OUTPUT_BUF_DBG_PATTERN; diff --git a/erts/emulator/beam/erl_binary.h b/erts/emulator/beam/erl_binary.h index cb26ee3407..51072f4b0f 100644 --- a/erts/emulator/beam/erl_binary.h +++ b/erts/emulator/beam/erl_binary.h @@ -375,6 +375,7 @@ erts_bin_drv_alloc_fnf(Uint size) if (res) { res->orig_size = size; res->flags = BIN_FLAG_DRV; + erts_refc_init(&res->refc, 1); } return res; } @@ -393,6 +394,7 @@ erts_bin_drv_alloc(Uint size) ERTS_CHK_BIN_ALIGNMENT(res); res->orig_size = size; res->flags = BIN_FLAG_DRV; + erts_refc_init(&res->refc, 1); return res; } diff --git a/erts/emulator/beam/erl_nif.c b/erts/emulator/beam/erl_nif.c index deed74ee49..94d25ba85a 100644 --- a/erts/emulator/beam/erl_nif.c +++ b/erts/emulator/beam/erl_nif.c @@ -1074,7 +1074,6 @@ int enif_alloc_binary(size_t size, ErlNifBinary* bin) if (refbin == NULL) { return 0; /* The NIF must take action */ } - erts_refc_init(&refbin->refc, 1); bin->size = size; bin->data = (unsigned char*) refbin->orig_bytes; diff --git a/erts/emulator/beam/io.c b/erts/emulator/beam/io.c index c85f900de5..36b8ee6860 100644 --- a/erts/emulator/beam/io.c +++ b/erts/emulator/beam/io.c @@ -6938,7 +6938,6 @@ driver_alloc_binary(ErlDrvSizeT size) bin = erts_bin_drv_alloc_fnf((Uint) size); if (!bin) return NULL; /* The driver write must take action */ - erts_refc_init(&bin->refc, 1); return Binary2ErlDrvBinary(bin); } |