]> git.siccegge.de Git - frida/frida.git/blobdiff - src/core/Function.cxx
Add doc repo as submodule
[frida/frida.git] / src / core / Function.cxx
index c4dc9854d9853a48816a0c4cb20bb284afb6eca5..ac3910d21a0348b35d9b63d3710125867b0f85ac 100644 (file)
@@ -2,23 +2,25 @@
 #include "BasicBlock.hxx"
 #include "core/events/RenameFunctionEvent.hxx"
 #include "InformationManager.hxx"
-#include "gui/qt.hxx"
+#include "qt.hxx"
 
-Function::Function(uint64_t start_address, InformationManager* manager)
+Function::Function(uint64_t start_address, bool dynamic, InformationManager* manager)
        : start_address(start_address)
+       , dynamic(dynamic)
        , manager(manager) {}
 
 
 void Function::setName(const std::string& new_name) {
        name = new_name;
-       RenameFunctionEvent event(new_name, start_address);
-       manager->dispatch(&event);
+       RenameFunctionEvent event(new_name, this, start_address);
+       emit manager->renameFunctionEvent(&event);
 }
 
 void Function::serialize(QXmlStreamWriter& stream) {
        stream.writeStartElement("function");
        stream.writeAttribute("name", getName().c_str());
        stream.writeAttribute("entry", QString::number(getStartAddress(), 16));
+       stream.writeAttribute("dynamic", dynamic? "yes" : "no");
 
        for (auto& blockentry : blocks()) {
                blockentry.second->serialize(stream);
@@ -31,6 +33,7 @@ Function* Function::deserialize(QXmlStreamReader& stream, InformationManager* ma
        Q_ASSERT(stream.name() == "function");
 
        QString name = stream.attributes().value("name").toString();
+       bool dynamic = stream.attributes().value("dynamic").toString() == "yes";
        uint64_t entry = stream.attributes().value("entry").toULongLong(NULL, 16);
        Function* fun = manager->newFunction(entry);
 
@@ -50,6 +53,7 @@ Function* Function::deserialize(QXmlStreamReader& stream, InformationManager* ma
        }
 
        fun->name = name.toStdString();
+       fun->dynamic = dynamic;
        manager->finishFunction(fun);
 
        return fun;