GUI: properly fixed #1408
This commit is contained in:
parent
04a97b51d6
commit
37fe2150e9
|
@ -1 +1 @@
|
|||
Subproject commit c8ca8305e29d21f10ead878609048aca0b10e59c
|
||||
Subproject commit 46b59b43ceb0209d7ab46d7f69bd16003b40b5a9
|
|
@ -51,7 +51,7 @@ void CPUArgumentWidget::disassembledAtSlot(dsint, dsint cip, bool, dsint)
|
|||
DbgDisasmFastAt(cip, &disasm);
|
||||
|
||||
const auto & cur = mCallingConventions[mCurrentCallingConvention];
|
||||
mStackOffset = disasm.call ? 0 : cur.getCallOffset();
|
||||
mStackOffset = cur.getStackOffset() + (disasm.call ? 0 : cur.getCallOffset());
|
||||
if(ui->checkBoxLock->checkState() == Qt::PartiallyChecked) //Calls
|
||||
{
|
||||
mAllowUpdate = disasm.call;
|
||||
|
|
|
@ -87,9 +87,11 @@ private:
|
|||
QString name;
|
||||
int stackArgCount;
|
||||
QString stackLocation32;
|
||||
duint stackOffset32;
|
||||
duint callOffset32;
|
||||
QString stackLocation64;
|
||||
duint callOffset64;
|
||||
duint stackOffset64;
|
||||
std::vector<Argument> arguments;
|
||||
|
||||
const QString & getStackLocation() const
|
||||
|
@ -97,6 +99,11 @@ private:
|
|||
return ArchValue(stackLocation32, stackLocation64);
|
||||
}
|
||||
|
||||
const duint getStackOffset() const
|
||||
{
|
||||
return ArchValue(stackOffset32, stackOffset64);
|
||||
}
|
||||
|
||||
const duint & getCallOffset() const
|
||||
{
|
||||
return ArchValue(callOffset32, callOffset64);
|
||||
|
@ -107,12 +114,21 @@ private:
|
|||
arguments.push_back(argument);
|
||||
}
|
||||
|
||||
explicit CallingConvention(const QString & name, int stackArgCount = 0, const QString & stackLocation32 = "esp", duint callOffset32 = sizeof(duint), const QString & stackLocation64 = "rsp", duint callOffset64 = sizeof(duint) * 5)
|
||||
explicit CallingConvention(const QString & name,
|
||||
int stackArgCount = 0,
|
||||
const QString & stackLocation32 = "esp",
|
||||
duint stackOffset32 = 0,
|
||||
duint callOffset32 = sizeof(duint),
|
||||
const QString & stackLocation64 = "rsp",
|
||||
duint stackOffset64 = 0x20,
|
||||
duint callOffset64 = sizeof(duint))
|
||||
: name(name),
|
||||
stackArgCount(stackArgCount),
|
||||
stackLocation32(stackLocation32),
|
||||
stackOffset32(stackOffset32),
|
||||
callOffset32(callOffset32),
|
||||
stackLocation64(stackLocation64),
|
||||
stackOffset64(stackOffset64),
|
||||
callOffset64(callOffset64)
|
||||
{
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue