瀏覽代碼

Remove duplicated SLOAD in Arrays.findUpperBound (#4442)

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: Francisco Giordano <fg@frang.io>
Molly 2 年之前
父節點
當前提交
0abf18f305
共有 2 個文件被更改,包括 9 次插入4 次删除
  1. 5 0
      .changeset/fluffy-countries-buy.md
  2. 4 4
      contracts/utils/Arrays.sol

+ 5 - 0
.changeset/fluffy-countries-buy.md

@@ -0,0 +1,5 @@
+---
+'openzeppelin-solidity': minor
+---
+
+`Arrays`: Optimize `findUpperBound` by removing redundant SLOAD.

+ 4 - 4
contracts/utils/Arrays.sol

@@ -22,13 +22,13 @@ library Arrays {
      * repeated elements.
      */
     function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {
-        if (array.length == 0) {
-            return 0;
-        }
-
         uint256 low = 0;
         uint256 high = array.length;
 
+        if (high == 0) {
+            return 0;
+        }
+
         while (low < high) {
             uint256 mid = Math.average(low, high);