@@ -155,50 +155,37 @@ library EnumerableSet {
155
155
view
156
156
returns (bytes32 [] memory )
157
157
{
158
- uint256 len = _length (set._inner);
159
- bytes32 [] memory arr = new bytes32 [](len);
160
-
161
- unchecked {
162
- for (uint256 index; index < len; ++ index) {
163
- arr[index] = at (set, index);
164
- }
165
- }
166
-
167
- return arr;
158
+ return set._inner._values;
168
159
}
169
160
170
161
function toArray (AddressSet storage set )
171
162
internal
172
163
view
173
164
returns (address [] memory )
174
165
{
175
- uint256 len = _length ( set._inner) ;
176
- address [] memory arr = new address [](len) ;
166
+ bytes32 [] storage values = set._inner._values ;
167
+ address [] storage array ;
177
168
178
- unchecked {
179
- for (uint256 index; index < len; ++ index) {
180
- arr[index] = at (set, index);
181
- }
169
+ assembly {
170
+ array.slot := values.slot
182
171
}
183
172
184
- return arr ;
173
+ return array ;
185
174
}
186
175
187
176
function toArray (UintSet storage set )
188
177
internal
189
178
view
190
179
returns (uint256 [] memory )
191
180
{
192
- uint256 len = _length ( set._inner) ;
193
- uint256 [] memory arr = new uint256 [](len) ;
181
+ bytes32 [] storage values = set._inner._values ;
182
+ uint256 [] storage array ;
194
183
195
- unchecked {
196
- for (uint256 index; index < len; ++ index) {
197
- arr[index] = at (set, index);
198
- }
184
+ assembly {
185
+ array.slot := values.slot
199
186
}
200
187
201
- return arr ;
188
+ return array ;
202
189
}
203
190
204
191
function _at (Set storage set , uint256 index )
@@ -238,8 +225,6 @@ library EnumerableSet {
238
225
set._values.push (value);
239
226
set._indexes[value] = set._values.length ;
240
227
return true ;
241
- } else {
242
- return false ;
243
228
}
244
229
}
245
230
@@ -261,8 +246,6 @@ library EnumerableSet {
261
246
delete set._indexes[value];
262
247
263
248
return true ;
264
- } else {
265
- return false ;
266
249
}
267
250
}
268
251
}
0 commit comments