diff options
author | John Högberg <[email protected]> | 2019-08-09 14:24:39 +0200 |
---|---|---|
committer | John Högberg <[email protected]> | 2019-08-09 14:29:39 +0200 |
commit | 83cd52cf585e37f65f956f18464b8cec98dde469 (patch) | |
tree | 3c46d4e43af5f667c81551049372b60b5bb85b84 /erts/emulator/beam/erl_bits.c | |
parent | 16d23f7ea9517b8743d754a2f2d4758abf42d60d (diff) | |
download | otp-83cd52cf585e37f65f956f18464b8cec98dde469.tar.gz otp-83cd52cf585e37f65f956f18464b8cec98dde469.tar.bz2 otp-83cd52cf585e37f65f956f18464b8cec98dde469.zip |
erts: Remove size check in bs_start_match
The size check is redundant now that all binaries are guaranteed
to be small enough that their size in bits fits into a word.
Diffstat (limited to 'erts/emulator/beam/erl_bits.c')
-rw-r--r-- | erts/emulator/beam/erl_bits.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/erts/emulator/beam/erl_bits.c b/erts/emulator/beam/erl_bits.c index f5807d25d7..df4d79651f 100644 --- a/erts/emulator/beam/erl_bits.c +++ b/erts/emulator/beam/erl_bits.c @@ -124,10 +124,10 @@ erts_bs_start_match_2(Process *p, Eterm Binary, Uint Max) ProcBin* pb; ASSERT(is_binary(Binary)); + total_bin_size = binary_size(Binary); - if ((total_bin_size >> (8*sizeof(Uint)-3)) != 0) { - return THE_NON_VALUE; - } + ASSERT(total_bin_size <= ERTS_UWORD_MAX / CHAR_BIT); + NeededSize = ERL_BIN_MATCHSTATE_SIZE(Max); hp = HeapOnlyAlloc(p, NeededSize); ms = (ErlBinMatchState *) hp; @@ -157,10 +157,9 @@ ErlBinMatchState *erts_bs_start_match_3(Process *p, Eterm Binary) ProcBin* pb; ASSERT(is_binary(Binary)); + total_bin_size = binary_size(Binary); - if ((total_bin_size >> (8*sizeof(Uint)-3)) != 0) { - return NULL; - } + ASSERT(total_bin_size <= ERTS_UWORD_MAX / CHAR_BIT); NeededSize = ERL_BIN_MATCHSTATE_SIZE(0); hp = HeapOnlyAlloc(p, NeededSize); |