Loading...
Searching...
No Matches
BinaryNinja::ValueLocation Struct Reference

Public Member Functions

 ValueLocation ()
 ValueLocation (Variable var, bool indir=false, std::optional< Variable > retPtr=std::nullopt)
 ValueLocation (const std::vector< ValueLocationComponent > &components, bool indir=false, std::optional< Variable > retPtr=std::nullopt)
 ValueLocation (std::vector< ValueLocationComponent > &&components, bool indir=false, std::optional< Variable > retPtr=std::nullopt)
std::optional< VariableGetVariableForReturnValue () const
std::optional< VariableGetVariableForParameter (size_t idx) const
ValueLocation RemapVariables (const std::function< Variable(Variable)> &remap) const
void ForEachVariable (const std::function< void(Variable var, bool indirect)> &func) const
bool ContainsVariable (Variable var) const
bool IsValid () const
bool operator== (const ValueLocation &loc) const
bool operator!= (const ValueLocation &loc) const
BNValueLocation ToAPIObject () const
std::string ToString (Architecture *arch) const

Static Public Member Functions

static ValueLocation FromAPIObject (const BNValueLocation *loc)
static void FreeAPIObject (BNValueLocation *loc)
static std::optional< ValueLocationParse (const std::string &str, Architecture *arch, std::string &error)

Public Attributes

std::vector< ValueLocationComponentcomponents
bool indirect = false
std::optional< VariablereturnedPointer

Constructor & Destructor Documentation

◆ ValueLocation() [1/4]

BinaryNinja::ValueLocation::ValueLocation ( )
inline

◆ ValueLocation() [2/4]

BinaryNinja::ValueLocation::ValueLocation ( Variable var,
bool indir = false,
std::optional< Variable > retPtr = std::nullopt )
inline

◆ ValueLocation() [3/4]

BinaryNinja::ValueLocation::ValueLocation ( const std::vector< ValueLocationComponent > & components,
bool indir = false,
std::optional< Variable > retPtr = std::nullopt )
inline

◆ ValueLocation() [4/4]

BinaryNinja::ValueLocation::ValueLocation ( std::vector< ValueLocationComponent > && components,
bool indir = false,
std::optional< Variable > retPtr = std::nullopt )
inline

Member Function Documentation

◆ GetVariableForReturnValue()

std::optional< Variable > ValueLocation::GetVariableForReturnValue ( ) const

◆ GetVariableForParameter()

std::optional< Variable > ValueLocation::GetVariableForParameter ( size_t idx) const

◆ RemapVariables()

ValueLocation ValueLocation::RemapVariables ( const std::function< Variable(Variable)> & remap) const

◆ ForEachVariable()

void ValueLocation::ForEachVariable ( const std::function< void(Variable var, bool indirect)> & func) const

◆ ContainsVariable()

bool ValueLocation::ContainsVariable ( Variable var) const

◆ IsValid()

bool BinaryNinja::ValueLocation::IsValid ( ) const
inline

◆ operator==()

bool ValueLocation::operator== ( const ValueLocation & loc) const

◆ operator!=()

bool ValueLocation::operator!= ( const ValueLocation & loc) const

◆ FromAPIObject()

ValueLocation ValueLocation::FromAPIObject ( const BNValueLocation * loc)
static

◆ ToAPIObject()

BNValueLocation ValueLocation::ToAPIObject ( ) const

◆ FreeAPIObject()

void ValueLocation::FreeAPIObject ( BNValueLocation * loc)
static

◆ Parse()

std::optional< ValueLocation > ValueLocation::Parse ( const std::string & str,
Architecture * arch,
std::string & error )
static

◆ ToString()

std::string ValueLocation::ToString ( Architecture * arch) const

Member Data Documentation

◆ components

std::vector<ValueLocationComponent> BinaryNinja::ValueLocation::components

◆ indirect

bool BinaryNinja::ValueLocation::indirect = false

◆ returnedPointer

std::optional<Variable> BinaryNinja::ValueLocation::returnedPointer