public abstract class MultianewarrayHelper extends Object
TODO: There is only 1 line of platform dependent code here; refactor?
Constructor and Description |
---|
MultianewarrayHelper() |
Modifier and Type | Method and Description |
---|---|
(package private) static Object |
newArrayArray(int methodId,
int numDimensions,
int typeId,
int argOffset)
Allocate something like {@code new Foo[cnt0][cnt1]...
|
public MultianewarrayHelper()
static Object newArrayArray(int methodId, int numDimensions, int typeId, int argOffset) throws NoClassDefFoundError, NegativeArraySizeException, OutOfMemoryError
new Foo[cnt0][cnt1]...[cntN-1]
,
or new int[cnt0][cnt1]...[cntN-1]
.methodId
- method id of callernumDimensions
- number of array dimensionstypeId
- type id of type reference for arrayargOffset
- position of word *above* `cnt0' argument within
caller's frame This is used to access the number of elements to
be allocated for each dimension.
See also: bytecode 0xc5 ("multianewarray") in BaselineCompilerImplNoClassDefFoundError
NegativeArraySizeException
OutOfMemoryError