12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include "dcc_interface.h"
- #include "dcc.h"
- #include "project.h"
- struct DccImpl : public IDcc {
- ilFunction m_current_func;
- // IDcc interface
- public:
- void BaseInit()
- {
- m_current_func = Project::get()->functions().end();
- }
- void Init(QObject *tgt)
- {
- }
- ilFunction GetFirstFuncHandle()
- {
- return Project::get()->functions().begin();
- }
- ilFunction GetCurFuncHandle()
- {
- return m_current_func;
- }
- void analysis_Once()
- {
- }
- void load(QString name)
- {
- option.filename = name;
- Project::get()->create(name);
- }
- void prtout_asm(IXmlTarget *, int level)
- {
- }
- void prtout_cpp(IXmlTarget *, int level)
- {
- }
- size_t getFuncCount()
- {
- return Project::get()->functions().size();
- }
- const lFunction &validFunctions() const
- {
- return Project::get()->functions();
- }
- void SetCurFunc_by_Name(QString v)
- {
- lFunction & funcs(Project::get()->functions());
- for(auto iter=funcs.begin(),fin=funcs.end(); iter!=fin; ++iter) {
- if(iter->name==v) {
- m_current_func = iter;
- return;
- }
- }
- }
- QDir installDir() {
- return QDir(".");
- }
- QDir dataDir(QString kind) { // return directory containing decompilation helper data -> signatures/includes/etc.
- QDir res(installDir());
- res.cd(kind);
- return res;
- }
- };
- IDcc* IDcc::get() {
- static IDcc *v=0;
- if(nullptr == v)
- v = new DccImpl;
- return v;
- }
|