mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
feat: 32-bit process support, scanner rescan filtering, suppress flash on navigate
- Add pointerSize() to Provider base; WoW64/ELF detection in ProcessMemory, WinDbg, and RemoteProcessMemory plugins - Wire pointer size through NodeTree, source/XML imports, C++ generator, controller, compose, address parser, and RPC protocol header - Add is32Bit to PluginProcessInfo and ProcessInfo; show (32-bit) in picker - Scanner rescan now filters results against the current input value - Go-to-address from scanner resets change tracking to prevent false flashing
This commit is contained in:
@@ -132,16 +132,7 @@ static QString emitField(GenContext& ctx, const Node& node, int depth, int baseO
|
||||
return ind + QStringLiteral("%1 %2[%3];").arg(ctx.cType(NodeKind::UTF8), name).arg(node.strLen) + oc;
|
||||
case NodeKind::UTF16:
|
||||
return ind + QStringLiteral("%1 %2[%3];").arg(ctx.cType(NodeKind::UTF16), name).arg(node.strLen) + oc;
|
||||
case NodeKind::Pointer32: {
|
||||
if (node.refId != 0) {
|
||||
int refIdx = tree.indexOfId(node.refId);
|
||||
if (refIdx >= 0) {
|
||||
QString target = ctx.structName(tree.nodes[refIdx]);
|
||||
return ind + QStringLiteral("struct %1* %2;").arg(target, name) + oc;
|
||||
}
|
||||
}
|
||||
return ind + QStringLiteral("%1 %2;").arg(ctx.cType(NodeKind::Pointer32), name) + oc;
|
||||
}
|
||||
case NodeKind::Pointer32:
|
||||
case NodeKind::Pointer64: {
|
||||
if (node.refId != 0) {
|
||||
int refIdx = tree.indexOfId(node.refId);
|
||||
@@ -150,7 +141,13 @@ static QString emitField(GenContext& ctx, const Node& node, int depth, int baseO
|
||||
return ind + QStringLiteral("struct %1* %2;").arg(target, name) + oc;
|
||||
}
|
||||
}
|
||||
return ind + QStringLiteral("void* %1;").arg(name) + oc;
|
||||
// Native pointer: use void* when this is the target's natural pointer kind
|
||||
bool isNativePtr = (node.kind == NodeKind::Pointer32 && ctx.tree.pointerSize <= 4)
|
||||
|| (node.kind == NodeKind::Pointer64 && ctx.tree.pointerSize >= 8);
|
||||
if (isNativePtr)
|
||||
return ind + QStringLiteral("void* %1;").arg(name) + oc;
|
||||
// Cross-size pointer: fall back to raw integer type
|
||||
return ind + QStringLiteral("%1 %2;").arg(ctx.cType(node.kind), name) + oc;
|
||||
}
|
||||
case NodeKind::FuncPtr32:
|
||||
return ind + QStringLiteral("void (*%1)();").arg(name) + oc;
|
||||
|
||||
Reference in New Issue
Block a user