X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fcore%2FBasicBlock.hxx;h=3f877879c95942f6defc15111a69938b02948969;hp=69d4f37d9c85cb8643bccdd713bb40f9c9adf102;hb=4443ad3e38327c776dcc68538591456d37c9ed6f;hpb=0daf9a157f3d41690cf4a0287db1adecc4ad0b71 diff --git a/src/core/BasicBlock.hxx b/src/core/BasicBlock.hxx index 69d4f37..3f87787 100644 --- a/src/core/BasicBlock.hxx +++ b/src/core/BasicBlock.hxx @@ -4,19 +4,21 @@ #include #include #include +#include +class Instruction; class Disassembler; class InformationManager; +class QXmlStreamWriter; +class QXmlStreamReader; class BasicBlock { public: - uint64_t getStartAddress() const { - return start_address; - } - - uint64_t getEndAddress() const { - return end_address; - } + InformationManager* getManager() const {return manager;} + uint64_t getStartAddress() const {return start_address;} + uint64_t getEndAddress() const {return end_address;} + void setStartAddress(uint64_t address) {start_address = address;} + void setEndAddress(uint64_t address) {end_address = address;} uint64_t getNextBlock(size_t index) const { assert(index < 2); @@ -28,26 +30,20 @@ public: next_blocks[index] = address; } - void setStartAddress(uint64_t address) { - start_address = address; - } - - void setEndAddress(uint64_t address) { - end_address = address; - } - std::string getName() const { std::stringstream s; s << "BLOCK_" << std::hex << start_address << '_' << end_address; return s.str(); } - InformationManager* getManager() const { - return manager; - } + std::list getInstructions() const; + void serialize(QXmlStreamWriter& stream); + static BasicBlock* deserialize(QXmlStreamReader& stream, InformationManager* manager); + private: BasicBlock(uint64_t start_address, InformationManager* manager) : start_address(start_address) + , end_address(0) , manager(manager) { next_blocks[0] = 0; next_blocks[1] = 0;