X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fcore%2FBasicBlock.hxx;h=0df07b2a7283d3b270712d7be1477f996ea3cea9;hp=9018b5b56aa8172d10d66e8f4248aeb9bb87de57;hb=f58969ddf1d22882bff102ef597c6f129255894a;hpb=9fe5caf6408d1b7d5eb86dacdb211bd22335398a diff --git a/src/core/BasicBlock.hxx b/src/core/BasicBlock.hxx index 9018b5b..0df07b2 100644 --- a/src/core/BasicBlock.hxx +++ b/src/core/BasicBlock.hxx @@ -7,18 +7,11 @@ class Disassembler; class InformationManager; +class QXmlStreamWriter; +class QXmlStreamReader; class BasicBlock { public: - BasicBlock(uint64_t start_address, Disassembler * disassembler, - InformationManager* manager) - : start_address(start_address) - , disassembler(disassembler) - , manager(manager) { - next_blocks[0] = 0; - next_blocks[1] = 0; - } - uint64_t getStartAddress() const { return start_address; } @@ -45,25 +38,35 @@ public: end_address = address; } - std::string getName() { + std::string getName() const { std::stringstream s; s << "BLOCK_" << std::hex << start_address << '_' << end_address; return s.str(); } - Disassembler * getDisassembler() { - return disassembler; - } - InformationManager* getManager() const { return manager; } + + 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; + } + uint64_t start_address; uint64_t end_address; Disassembler* disassembler; InformationManager* manager; uint64_t next_blocks[2]; + + friend class InformationManager; }; #endif