public class GeneratedMethodInfo
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
GeneratedMethodInfo.LocalSlotInfo |
Modifier and Type | Field and Description |
---|---|
Generator |
currentGenerator |
boolean |
debug |
java.util.Set<LabelInfo> |
labelMap |
java.util.List<GeneratedMethodInfo.LocalSlotInfo> |
slotList |
Constructor and Description |
---|
GeneratedMethodInfo() |
Modifier and Type | Method and Description |
---|---|
int |
allocateLocal(java.lang.Class theClass)
Allocate a local bytecode variable.
|
void |
checkLabels()
Check (on completion of the method) that all labels that have been used have also been marked
|
int |
getContextVariablePosition() |
Generator |
getCurrentGenerator() |
int |
getSequenceReceiverPosition() |
LabelInfo |
getTailCallLabel()
Get the label to act as the target of a jump for a self-recursive tail call.
|
java.util.Stack<LabelInfo> |
getXslIterateBreakLabelStack()
Get the stack of labels representing entry points to xsl:iterate instructions within this method
|
java.util.Stack<LabelInfo> |
getXslIterateLoopLabelStack()
Get the stack of labels representing entry points to xsl:iterate instructions within this method
|
boolean |
isContextVariableAnArgument() |
boolean |
isSequenceReceiverInitialized() |
LabelInfo |
newLabel(java.lang.String name)
Allocate a new label within the method
|
void |
placeLabel(LabelInfo labelInfo)
Place a label at the current position in the bytecode
|
LabelInfo |
placeNewLabel(java.lang.String name)
Place a new label at the current position in the bytecode
|
void |
popContextVariableInfo() |
void |
popSequenceReceiverInfo() |
void |
pushContextVariableInfo(int position,
boolean isArgument) |
void |
pushSequenceReceiverInfo(int position) |
void |
releaseLocal(int slotNumber)
Return a local variable to the pool for reuse
|
void |
setTailCallLabel(LabelInfo label)
Supply the label to act as the target of a jump for a self-recursive tail call.
|
public Generator currentGenerator
public boolean debug
public java.util.Set<LabelInfo> labelMap
public java.util.List<GeneratedMethodInfo.LocalSlotInfo> slotList
public void pushContextVariableInfo(int position, boolean isArgument)
public void pushSequenceReceiverInfo(int position)
public void popContextVariableInfo()
public void popSequenceReceiverInfo()
public int getContextVariablePosition()
public int getSequenceReceiverPosition()
public boolean isSequenceReceiverInitialized()
public boolean isContextVariableAnArgument()
public Generator getCurrentGenerator()
public LabelInfo newLabel(java.lang.String name)
name
- a diagnostic name for the label, used if errors are reportedpublic void placeLabel(LabelInfo labelInfo)
labelInfo
- the label to be placed (marked)java.lang.AssertionError
- if the label has already been markedpublic LabelInfo placeNewLabel(java.lang.String name)
name
- the name of the labeljava.lang.AssertionError
- if the label has already been markedpublic void checkLabels()
java.lang.AssertionError
- if this is not the casepublic java.util.Stack<LabelInfo> getXslIterateLoopLabelStack()
public java.util.Stack<LabelInfo> getXslIterateBreakLabelStack()
public int allocateLocal(java.lang.Class theClass)
theClass
- the class of value to be held in the local variablepublic void releaseLocal(int slotNumber)
slotNumber
- the slot number to be released for reusepublic void setTailCallLabel(LabelInfo label)
label
- the target label for a tail call loop (or null if there is to be no tail call)public LabelInfo getTailCallLabel()
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.