Store orders length in varible before looping over orders
This commit is contained in:
@@ -245,7 +245,8 @@ contract MixinForwarderCore is
|
||||
orders[0].takerAssetData = WETH_ASSET_DATA;
|
||||
|
||||
// All orders are required to have the same makerAssetData. We save on gas by reusing the makerAssetData of the first order.
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
orders[i].makerAssetData = orders[0].makerAssetData;
|
||||
}
|
||||
|
||||
@@ -274,7 +275,8 @@ contract MixinForwarderCore is
|
||||
bytes memory wethAssetData = WETH_ASSET_DATA;
|
||||
|
||||
// All orders are required to have WETH as takerAssetData. We save on gas by populating the orders here, rather than passing in any extra calldata.
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
orders[i].takerAssetData = wethAssetData;
|
||||
}
|
||||
|
||||
@@ -311,7 +313,8 @@ contract MixinForwarderCore is
|
||||
bytes memory wethAssetData = WETH_ASSET_DATA;
|
||||
uint256 zrxPurchased = 0;
|
||||
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
|
||||
// All of these are ZRX/WETH, so we can drop the respective assetData from calldata.
|
||||
orders[i].makerAssetData = zrxAssetData;
|
||||
|
@@ -119,7 +119,8 @@ contract MixinWrapperFunctions is
|
||||
public
|
||||
returns (FillResults memory totalFillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
FillResults memory singleFillResults = fillOrder(
|
||||
orders[i],
|
||||
takerAssetFillAmounts[i],
|
||||
@@ -144,7 +145,8 @@ contract MixinWrapperFunctions is
|
||||
public
|
||||
returns (FillResults memory totalFillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
FillResults memory singleFillResults = fillOrKillOrder(
|
||||
orders[i],
|
||||
takerAssetFillAmounts[i],
|
||||
@@ -170,7 +172,8 @@ contract MixinWrapperFunctions is
|
||||
public
|
||||
returns (FillResults memory totalFillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
FillResults memory singleFillResults = fillOrderNoThrow(
|
||||
orders[i],
|
||||
takerAssetFillAmounts[i],
|
||||
@@ -196,7 +199,8 @@ contract MixinWrapperFunctions is
|
||||
{
|
||||
bytes memory takerAssetData = orders[0].takerAssetData;
|
||||
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
|
||||
// We assume that asset being sold by taker is the same for each order.
|
||||
// Rather than passing this in as calldata, we use the takerAssetData from the first order in all later orders.
|
||||
@@ -239,7 +243,8 @@ contract MixinWrapperFunctions is
|
||||
{
|
||||
bytes memory takerAssetData = orders[0].takerAssetData;
|
||||
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
|
||||
// We assume that asset being sold by taker is the same for each order.
|
||||
// Rather than passing this in as calldata, we use the takerAssetData from the first order in all later orders.
|
||||
@@ -281,7 +286,8 @@ contract MixinWrapperFunctions is
|
||||
{
|
||||
bytes memory makerAssetData = orders[0].makerAssetData;
|
||||
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
|
||||
// We assume that asset being bought by taker is the same for each order.
|
||||
// Rather than passing this in as calldata, we copy the makerAssetData from the first order onto all later orders.
|
||||
@@ -332,7 +338,8 @@ contract MixinWrapperFunctions is
|
||||
{
|
||||
bytes memory makerAssetData = orders[0].makerAssetData;
|
||||
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
|
||||
// We assume that asset being bought by taker is the same for each order.
|
||||
// Rather than passing this in as calldata, we copy the makerAssetData from the first order onto all later orders.
|
||||
@@ -372,7 +379,8 @@ contract MixinWrapperFunctions is
|
||||
function batchCancelOrders(LibOrder.Order[] memory orders)
|
||||
public
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
cancelOrder(orders[i]);
|
||||
}
|
||||
}
|
||||
@@ -385,9 +393,9 @@ contract MixinWrapperFunctions is
|
||||
view
|
||||
returns (LibOrder.OrderInfo[] memory)
|
||||
{
|
||||
uint256 length = orders.length;
|
||||
LibOrder.OrderInfo[] memory ordersInfo = new LibOrder.OrderInfo[](length);
|
||||
for (uint256 i = 0; i < length; i++) {
|
||||
uint256 ordersLength = orders.length;
|
||||
LibOrder.OrderInfo[] memory ordersInfo = new LibOrder.OrderInfo[](ordersLength);
|
||||
for (uint256 i = 0; i < ordersLength; i++) {
|
||||
ordersInfo[i] = getOrderInfo(orders[i]);
|
||||
}
|
||||
return ordersInfo;
|
||||
|
Reference in New Issue
Block a user