com.joanju.cg.bytecode
Class CallinInstr
java.lang.Object
com.joanju.cg.bytecode.Bytecode
com.joanju.cg.bytecode.Endpoint
com.joanju.cg.bytecode.AbstractCall
com.joanju.cg.bytecode.CallInstr
com.joanju.cg.bytecode.CallinInstr
public class CallinInstr
- extends CallInstr
Represents any IN HANDLE type of call.
A note about local references vs. xref cross-references:
For IN HANDLE, we always use xref rather than local references, even
if the handle resolves to THIS-PROCEDURE. Sometimes the handle that
resolves to this-procedure might be a var or param, whose possible values
could change as a result of changes to other compile units. Xref is
designed to propagate changes like that, local references are not. So,
we always use xref for IN HANDLE. For simple consistency, we use
xref instead of local references even when THIS-PROCEDURE is hard-coded.
Methods inherited from class com.joanju.cg.bytecode.CallInstr |
getColumn, getFileID, getLine, getLocalTargets, getNameRVal, hasLocalTarget, isRunSet, setColumn, setFileID, setLine, setMethodSigID, setNameRVal, setRunSet |
Methods inherited from class com.joanju.cg.bytecode.AbstractCall |
addWhereUsed, beforeWrite, calcValueSets, enableUserIgnoreMismatch, enableUserIgnoreUnresolved, getAllTargetProcedures, getMethodSig, getMethodSigID, getTargetType, getValues, isUserIgnoreMismatch, isUserIgnoreUnresolved, setTargetType |
Methods inherited from class com.joanju.cg.bytecode.Bytecode |
addSource, calcValuesAgain, compareTo, equals, fetchBytesFromDB, fetchInCu, generateDataForDB, getAddress, getCuID, getNodeNum, getSources, getValuesCalcLocal, getWhereUsed, getXrefs, hashCode, initData, isDataModified, isFromDB, setAddress, setCuID, setDataBytesFromDB, setDataModified, setFromDB, setInstructionSet, setNodeNum, shouldLoadData, sourcesForXrefTarget, storeIfModified, toString, toStringFromName, toStringFromSet |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
CallinInstr
public CallinInstr()
CallinInstr
public CallinInstr(int cuid,
int address)
calcValueSets2
protected void calcValueSets2()
throws java.sql.SQLException,
java.io.IOException
- This is wrapped by AbstractCall.calcValueSets().
The super's calcValueSets deals with changes to values.
This method does the actual value set calculations.
- Overrides:
calcValueSets2
in class CallInstr
- Throws:
java.sql.SQLException
java.io.IOException
getHandleRVal
public int getHandleRVal()
throws java.sql.SQLException,
java.io.IOException
- Throws:
java.sql.SQLException
java.io.IOException
getOpcode
public Opcode getOpcode()
- Overrides:
getOpcode
in class CallInstr
getTargetCuids
public java.util.HashSet<java.lang.Integer> getTargetCuids()
throws java.sql.SQLException,
java.io.IOException
- Throws:
java.sql.SQLException
java.io.IOException
setHandleRVal
public void setHandleRVal(int handleRVal)
setValuesFromByteStream
protected void setValuesFromByteStream(java.io.DataInputStream in)
throws java.io.IOException
- Overrides:
setValuesFromByteStream
in class CallInstr
- Throws:
java.io.IOException
toStringFromComments
public java.lang.String toStringFromComments(InstructionSet instrs)
throws java.sql.SQLException
- Description copied from class:
Bytecode
- All Bytecode instruction subclasses should override this eventually.
- Overrides:
toStringFromComments
in class CallInstr
- Returns:
- "" if not overridden.
- Throws:
java.sql.SQLException
toStringFromData
public java.lang.String toStringFromData()
- Appends handleRVal to string values from the basic CallInstr.
- Overrides:
toStringFromData
in class CallInstr
- Returns:
- "" if not overridden.
writeValuesToByteStream
protected void writeValuesToByteStream(java.io.DataOutputStream out)
throws java.io.IOException
- Overrides:
writeValuesToByteStream
in class CallInstr
- Throws:
java.io.IOException
Copyright © 2008 Joanju Software. All Rights Reserved.