16#ifndef LIEF_DEX_METHOD_H
17#define LIEF_DEX_METHOD_H
50 const std::string&
name()
const;
97 void set_virtual(
bool v);
101 Class* parent_ =
nullptr;
104 uint32_t original_index_ = UINT_MAX;
105 bool is_virtual_ =
false;
107 uint64_t code_offset_ = 0;
108 std::vector<uint8_t> bytecode_;
Class which represents a DEX Class (i.e. a Java/Kotlin class).
Definition DEX/Class.hpp:36
Definition CodeInfo.hpp:33
void accept(Visitor &visitor) const override
std::vector< uint8_t > bytecode_t
Definition DEX/Method.hpp:42
friend std::ostream & operator<<(std::ostream &os, const Method &mtd)
const dex2dex_method_info_t & dex2dex_info() const
Method(std::string name, Class *parent=nullptr)
std::vector< ACCESS_FLAGS > access_flags_list_t
Definition DEX/Method.hpp:39
void insert_dex2dex_info(uint32_t pc, uint32_t index)
const bytecode_t & bytecode() const
Dalvik Bytecode as bytes.
bool is_virtual() const
True if this method is a virtual one. i.e. not static, private, finale or constructor.
const std::string & name() const
Name of the Method.
Method & operator=(const Method &)
const Class * cls() const
DEX::Class associated with this Method or a nullptr if not resolved.
access_flags_list_t access_flags() const
ACCESS_FLAGS as an std::set.
bool has(ACCESS_FLAGS f) const
Check if the current method has the given ACCESS_FLAGS.
size_t index() const
Index in the DEX Methods pool.
const CodeInfo & code_info() const
const Prototype * prototype() const
Method's prototype or a nullptr if it is not resolved.
friend class Parser
Definition DEX/Method.hpp:37
bool has_class() const
True if a class is associated with this method.
uint64_t code_offset() const
Offset to the Dalvik Bytecode.
Class which parses a DEX file to produce a DEX::File object.
Definition DEX/Parser.hpp:38
Class which represents a DEX method prototype.
Definition Prototype.hpp:29
Definition Visitor.hpp:210
Definition DEX/Class.hpp:30
ACCESS_FLAGS
Definition DEX/enums.hpp:22
@ ACC_UNKNOWN
Definition DEX/enums.hpp:23
std::unordered_map< uint32_t, uint32_t > dex2dex_method_info_t
Definition deopt.hpp:27
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:41