fix a minor "misfeature" in the symbol table code.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1952 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard 2009-01-20 13:13:03 +00:00
parent 8c997e90d9
commit d6443478b0
3 changed files with 33 additions and 23 deletions

View File

@ -93,11 +93,12 @@ void SymbolDB::AddKnownSymbol(u32 startAddr, u32 size, const char *name, int typ
XFuncMap::iterator iter = functions.find(startAddr);
if (iter != functions.end())
{
// already got it, let's just update name and checksum to be sure.
// already got it, let's just update name, checksum & size to be sure.
Symbol *tempfunc = &iter->second;
tempfunc->name = name;
tempfunc->hash = SignatureDB::ComputeCodeChecksum(startAddr, startAddr + size);
tempfunc->type = type;
tempfunc->size = size;
}
else
{
@ -110,6 +111,7 @@ void SymbolDB::AddKnownSymbol(u32 startAddr, u32 size, const char *name, int typ
PPCAnalyst::AnalyzeFunction(startAddr, tf, size);
checksumToFunction[tf.hash] = &(functions[startAddr]);
}
tf.size = size;
functions[startAddr] = tf;
}
}

View File

@ -45,6 +45,7 @@ enum
IDM_RENAMESYMBOL,
IDM_PATCHALERT,
IDM_COPYFUNCTION,
IDM_ADDFUNCTION,
};
@ -221,6 +222,8 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
wxTheClipboard->SetData(new wxTextDataObject(wxString::FromAscii(temp)));
}
break;
case IDM_COPYFUNCTION:
{
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(selection);
@ -289,6 +292,13 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
}
break;
case IDM_ADDFUNCTION:
{
g_symbolDB.AddFunction(selection);
Host_NotifyMapLoaded();
}
break;
case IDM_RENAMESYMBOL:
{
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(selection);
@ -336,6 +346,7 @@ void CCodeView::OnMouseUpR(wxMouseEvent& event)
menu.Append(IDM_RENAMESYMBOL, wxString::FromAscii("Rename &symbol"))->Enable(isSymbol);
menu.AppendSeparator();
menu.Append(IDM_RUNTOHERE, _T("&Run To Here"));
menu.Append(IDM_ADDFUNCTION, _T("&Add function"));
menu.Append(IDM_JITRESULTS, wxString::FromAscii("PPC vs X86"));
menu.Append(IDM_INSERTBLR, wxString::FromAscii("Insert &blr"));
menu.Append(IDM_PATCHALERT, wxString::FromAscii("Patch alert"));

View File

@ -22,31 +22,28 @@
#include "Common.h"
class CRegTable
: public wxGridTableBase
class CRegTable : public wxGridTableBase
{
public:
CRegTable(){;}
int GetNumberCols(void){return 4;}
int GetNumberRows(void){return 16;}
bool IsEmptyCell(int, int){return false;}
wxString GetValue(int, int);
void SetValue(int, int, const wxString &);
wxGridCellAttr *GetAttr(int, int, wxGridCellAttr::wxAttrKind);
private:
DECLARE_NO_COPY_CLASS(CRegTable);
public:
CRegTable() {}
int GetNumberCols(void){return 4;}
int GetNumberRows(void){return 16;}
bool IsEmptyCell(int, int){return false;}
wxString GetValue(int, int);
void SetValue(int, int, const wxString &);
wxGridCellAttr *GetAttr(int, int, wxGridCellAttr::wxAttrKind);
private:
DECLARE_NO_COPY_CLASS(CRegTable);
};
class CRegisterView
: public wxGrid
class CRegisterView : public wxGrid
{
public:
CRegisterView(wxWindow* parent, wxWindowID id);
void Update();
u32 m_CachedRegs[32];
bool m_CachedRegHasChanged[32];
public:
CRegisterView(wxWindow* parent, wxWindowID id);
void Update();
u32 m_CachedRegs[32];
bool m_CachedRegHasChanged[32];
};
#endif