diff options
author | Sverker Eriksson <[email protected]> | 2018-02-21 11:39:14 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2018-02-21 11:39:14 +0100 |
commit | 1540a0758b8d60af7b3832158015bd8cf64016af (patch) | |
tree | 665c0519adb7385f4eab09942ee0700ff591595b | |
parent | 2ed6b2c7c28746385054e9b83bb845d35d49e4fc (diff) | |
parent | ad29b4d489b5a3f1139d3307a67c544b93995e26 (diff) | |
download | otp-1540a0758b8d60af7b3832158015bd8cf64016af.tar.gz otp-1540a0758b8d60af7b3832158015bd8cf64016af.tar.bz2 otp-1540a0758b8d60af7b3832158015bd8cf64016af.zip |
Merge PR-1708 from philipstears OTP-14934
Optimize non-strict equality check of binaries differing in size
-rw-r--r-- | erts/emulator/beam/utils.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/utils.c b/erts/emulator/beam/utils.c index fe9f1c7606..4bf60619ba 100644 --- a/erts/emulator/beam/utils.c +++ b/erts/emulator/beam/utils.c @@ -3152,6 +3152,9 @@ tailrecur_ne: int cmp; byte* a_ptr; byte* b_ptr; + if (eq_only && a_size != b_size) { + RETURN_NEQ(a_size - b_size); + } ERTS_GET_BINARY_BYTES(a, a_ptr, a_bitoffs, a_bitsize); ERTS_GET_BINARY_BYTES(b, b_ptr, b_bitoffs, b_bitsize); if ((a_bitsize | b_bitsize | a_bitoffs | b_bitoffs) == 0) { |