]> git.siccegge.de Git - frida/frida.git/blobdiff - src/core/InformationManager.cxx
Make pieces of information serialize themselves
[frida/frida.git] / src / core / InformationManager.cxx
index 294dc2f53583b7e3a9c5ce6b8f33fd49427bf058..3eebc3422300cfde2f68323192d7f20b2a46f203 100644 (file)
@@ -37,23 +37,9 @@ void InformationManager::save(const QString& filename) {
                stream.setAutoFormatting(true);
                stream.setAutoFormattingIndent(-1);
                stream.writeStartDocument();
-               stream.writeStartElement("function");
-               stream.writeAttribute("name", fun->getName().c_str());
-               stream.writeAttribute("entry", QString::number(fun->getStartAddress(), 16));
-
-               for (auto& blockentry : fun->blocks()) {
-                       stream.writeStartElement("block");
-                       stream.writeAttribute("id", blockentry.second->getName().c_str());
-                       stream.writeTextElement("start", QString::number(blockentry.second->getStartAddress(), 16));
-                       stream.writeTextElement("end", QString::number(blockentry.second->getEndAddress(), 16));
-                       if (0 != blockentry.second->getNextBlock(0))
-                               stream.writeTextElement("next", QString::number(blockentry.second->getNextBlock(0), 16));
-                       if (0 != blockentry.second->getNextBlock(1))
-                               stream.writeTextElement("next", QString::number(blockentry.second->getNextBlock(1), 16));
-                       stream.writeEndElement(); // "block"
-               }
-
-               stream.writeEndElement(); // "function"
+
+               fun->serialize(stream);
+
                stream.writeEndDocument();
                outZipFile.close();
        }