Skip to content

Commit a5fd4cd

Browse files
committed
Move setSize() from ArrayHelpers to RubyArray
1 parent 708c15d commit a5fd4cd

File tree

7 files changed

+15
-24
lines changed

7 files changed

+15
-24
lines changed

src/main/java/org/truffleruby/core/array/ArrayAppendManyNode.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
*/
1010
package org.truffleruby.core.array;
1111

12-
import static org.truffleruby.core.array.ArrayHelpers.setSize;
13-
1412
import org.truffleruby.core.array.library.ArrayStoreLibrary;
1513
import org.truffleruby.language.RubyBaseNode;
1614

@@ -56,7 +54,7 @@ RubyArray appendManySameType(RubyArray array, RubyArray other,
5654
array.setStoreAndSize(newStore, newSize);
5755
} else {
5856
otherStores.copyContents(otherStore, 0, store, oldSize, otherSize);
59-
setSize(array, newSize);
57+
array.setSize(newSize);
6058
}
6159
return array;
6260
}

src/main/java/org/truffleruby/core/array/ArrayAppendOneNode.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
*/
1010
package org.truffleruby.core.array;
1111

12-
import static org.truffleruby.core.array.ArrayHelpers.setSize;
13-
1412
import com.oracle.truffle.api.dsl.NeverDefault;
1513
import com.oracle.truffle.api.dsl.ReportPolymorphism;
1614
import com.oracle.truffle.api.profiles.CountingConditionProfile;
@@ -63,7 +61,7 @@ RubyArray appendOneSameType(RubyArray array, Object value,
6361
array.setStoreAndSize(newStore, newSize);
6462
} else {
6563
stores.write(store, oldSize, value);
66-
setSize(array, newSize);
64+
array.setSize(newSize);
6765
}
6866
return array;
6967
}

src/main/java/org/truffleruby/core/array/ArrayHelpers.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@
1616

1717
public abstract class ArrayHelpers {
1818

19-
/** Sets the size of the given array
20-
*
21-
* Asserts that the size is valid for the current store of the array. If setting both size and store, use
22-
* setStoreAndSize or be sure to setStore before setSize as this assertion may fail. */
23-
public static void setSize(RubyArray array, int size) {
24-
assert ArrayOperations.getStoreCapacity(array) >= size;
25-
array.size = size;
26-
}
27-
2819
private static boolean assertValidElements(Object store, int size) {
2920
return !(store instanceof Object[]) || ArrayUtils.assertValidElements((Object[]) store, 0, size);
3021
}

src/main/java/org/truffleruby/core/array/ArrayNodes.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
*/
1010
package org.truffleruby.core.array;
1111

12-
import static org.truffleruby.core.array.ArrayHelpers.setSize;
1312
import static org.truffleruby.language.dispatch.DispatchConfiguration.PUBLIC;
1413

1514
import java.util.Arrays;
@@ -1708,7 +1707,7 @@ RubyArray popNotEmptyUnsharedStorage(RubyArray array, int n,
17081707

17091708
// Remove the end from the original array.
17101709
stores.clear(store, size - numPop, numPop);
1711-
setSize(array, size - numPop);
1710+
array.setSize(size - numPop);
17121711

17131712
return createArray(popped, numPop);
17141713
}

src/main/java/org/truffleruby/core/array/ArrayPopOneNode.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
*/
1010
package org.truffleruby.core.array;
1111

12-
import static org.truffleruby.core.array.ArrayHelpers.setSize;
13-
1412
import org.truffleruby.core.array.library.ArrayStoreLibrary;
1513
import org.truffleruby.language.RubyBaseNode;
1614

@@ -40,7 +38,7 @@ Object popOne(RubyArray array,
4038
final int size = array.size;
4139
final Object value = stores.read(store, size - 1);
4240
stores.clear(store, size - 1, 1);
43-
setSize(array, size - 1);
41+
array.setSize(size - 1);
4442
return value;
4543
}
4644

src/main/java/org/truffleruby/core/array/ArrayWriteNormalizedNode.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
*/
1010
package org.truffleruby.core.array;
1111

12-
import static org.truffleruby.core.array.ArrayHelpers.setSize;
13-
1412
import com.oracle.truffle.api.TruffleSafepoint;
1513
import com.oracle.truffle.api.profiles.LoopConditionProfile;
1614
import org.truffleruby.core.array.library.ArrayStoreLibrary;
@@ -124,7 +122,7 @@ Object writeBeyondObject(RubyArray array, int index, Object value,
124122
profileAndReportLoopCount(loopProfile, n - array.size);
125123
}
126124
newStores.write(newStore, index, value);
127-
setSize(array, index + 1);
125+
array.setSize(index + 1);
128126
return value;
129127
}
130128

src/main/java/org/truffleruby/core/array/RubyArray.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,16 @@ public void setStore(Object store) {
6161
public void setStoreAndSize(Object store, int size) {
6262
assert (store instanceof SharedArrayStorage) == (this.getShape().isShared());
6363
this.setStore(store);
64-
ArrayHelpers.setSize(this, size);
64+
setSize(size);
65+
}
66+
67+
/** Sets the size of the given array
68+
*
69+
* Asserts that the size is valid for the current store of the array. If setting both size and store, use
70+
* {@link #setStoreAndSize} or be sure to {@link #setStore} before {@link #setSize} as this assertion may fail. */
71+
public void setSize(int size) {
72+
assert ArrayOperations.getStoreCapacity(this) >= size;
73+
this.size = size;
6574
}
6675

6776
@TruffleBoundary

0 commit comments

Comments
 (0)