Methods Summary |
---|
public abstract void | annotate(com.android.dx.util.ExceptionWithContext ex)Annotates (adds context to) the given exception with information
about this instance.
|
public abstract com.android.dx.cf.code.LocalsArray | copy()Makes and returns a mutable copy of this instance.
|
public abstract com.android.dx.rop.type.TypeBearer | get(int idx)Gets the type stored at the given local index, only succeeding if
the given local contains a valid type (though it is allowed to
be an uninitialized instance).
|
public abstract com.android.dx.rop.type.TypeBearer | getCategory1(int idx)Gets the type stored at the given local index, which is expected
to be an initialized category-1 value.
|
public abstract com.android.dx.rop.type.TypeBearer | getCategory2(int idx)Gets the type stored at the given local index, which is expected
to be a category-2 value.
|
public abstract int | getMaxLocals()Gets the maximum number of locals this instance can refer to.
|
public abstract com.android.dx.rop.type.TypeBearer | getOrNull(int idx)Gets the type stored at the given local index, or null
if the given local is uninitialized / invalid.
|
protected abstract OneLocalsArray | getPrimary()Gets the locals set appropriate for the current execution context.
That is, if this is a OneLocalsArray instance, then return
this , otherwise return LocalsArraySet 's
primary.
|
public abstract void | invalidate(int idx)Invalidates the local at the given index.
|
public abstract void | makeInitialized(com.android.dx.rop.type.Type type)Replaces all the occurrences of the given uninitialized type in
this array with its initialized equivalent.
|
public abstract com.android.dx.cf.code.LocalsArray | merge(com.android.dx.cf.code.LocalsArray other)Merges this instance with other . If the merged result is
the same as this instance, then this is returned (not a copy).
|
public abstract LocalsArraySet | mergeWithSubroutineCaller(com.android.dx.cf.code.LocalsArray other, int predLabel)Merges this instance with a LocalsSet from a subroutine
caller. To be used when merging in the first block of a subroutine.
|
public abstract void | set(int idx, com.android.dx.rop.type.TypeBearer type)Sets the type stored at the given local index. If the given type
is category-2, then (a) the index must be at least two less than
getMaxLocals() and (b) the next index gets invalidated
by the operation. In case of either category, if the previous
local contains a category-2 value, then it too is invalidated by
this operation.
|
public abstract void | set(com.android.dx.rop.code.RegisterSpec spec)Sets the type for the local indicated by the given register spec
to that register spec (which includes type and optional name
information). This is identical to calling
set(spec.getReg(), spec) .
|