public class DotnetBodyVariableManager extends Object
| Modifier and Type | Field and Description |
|---|---|
LocalGenerator |
localGenerator |
| Constructor and Description |
|---|
DotnetBodyVariableManager(DotnetBody dotnetBody,
Body mainJb) |
| Modifier and Type | Method and Description |
|---|---|
void |
addInitLocalVariables(List<ProtoIlInstructions.IlVariableMsg> variableMsgList)
Add and Initialize all known variables/locals at the beginning
|
void |
addLocalsToCast(String local)
Sometimes we need to cast locals to fulfill the validation.
|
void |
addLocalVariable(Local local) |
Local |
addOrGetVariable(ProtoIlInstructions.IlVariableMsg v,
Body jbTmp)
Add or get variable/local of this method body
|
Local |
addOrGetVariable(ProtoIlInstructions.IlVariableMsg v,
Type type,
Body jbTmp)
Type of local is got by the protoVariableMsg but in some cases we need to define the type of the local
|
void |
fillMethodParameter()
Add parameters of the .NET method to the Jimple Body
|
void |
fillMethodParameter(Body jb,
List<ProtoAssemblyAllTypes.ParameterDefinition> parameters)
Add parameters of the .NET method to the Jimple Body
|
static Value |
inlineLocals(Value v,
Body jb)
Recursively get value of a locals chain
|
boolean |
localsToCastContains(String local) |
public final LocalGenerator localGenerator
public DotnetBodyVariableManager(DotnetBody dotnetBody, Body mainJb)
public void fillMethodParameter()
public void fillMethodParameter(Body jb, List<ProtoAssemblyAllTypes.ParameterDefinition> parameters)
jb - parameters - public void addInitLocalVariables(List<ProtoIlInstructions.IlVariableMsg> variableMsgList)
variableMsgList - public Local addOrGetVariable(ProtoIlInstructions.IlVariableMsg v, Body jbTmp)
v - jbTmp - public Local addOrGetVariable(ProtoIlInstructions.IlVariableMsg v, Type type, Body jbTmp)
v - type - jbTmp - public void addLocalVariable(Local local)
public static Value inlineLocals(Value v, Body jb)
v - jb - public void addLocalsToCast(String local)
local - public boolean localsToCastContains(String local)
Copyright © 2024 Soot OSS. All rights reserved.