summaryrefslogtreecommitdiff
path: root/lang/c/pseudoobjc.h
diff options
context:
space:
mode:
authorMark Rowe <mrowe@bdash.net.nz>2025-05-30 09:22:50 -0700
committerkat <kat@vector35.com>2025-06-18 10:44:49 -0400
commit90d5791ef7b211ca8f792eb64f9452f6df92d1e0 (patch)
tree0c739461f6ad946fa917de2f94029ad03c6e1d85 /lang/c/pseudoobjc.h
parentb6b98c07eb8ce704da4edf5a0b16959215a2c450 (diff)
[ObjC] Improve how [super ...] calls are displayed
1. Skip displaying the declaration and initialization of the objc_super struct since that's an artifact of how objc_msgSendSuper is called. 2. Display the message receiver as `super` rather than `&super`
Diffstat (limited to 'lang/c/pseudoobjc.h')
-rw-r--r--lang/c/pseudoobjc.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/lang/c/pseudoobjc.h b/lang/c/pseudoobjc.h
index 5ee3d870..ecf2db47 100644
--- a/lang/c/pseudoobjc.h
+++ b/lang/c/pseudoobjc.h
@@ -21,8 +21,10 @@ protected:
BinaryNinja::HighLevelILTokenEmitter& tokens, BinaryNinja::DisassemblySettings* settings,
BNOperatorPrecedence precedence, bool statement) override;
+ bool ShouldSkipStatement(const BinaryNinja::HighLevelILInstruction& instr) override;
+
private:
- bool GetExpr_ObjCMsgSend(uint64_t msgSendAddress, bool isRewritten, const BinaryNinja::HighLevelILInstruction& expr,
+ bool GetExpr_ObjCMsgSend(uint64_t msgSendAddress, bool isSuper, bool isRewritten, const BinaryNinja::HighLevelILInstruction& expr,
BinaryNinja::HighLevelILTokenEmitter& tokens, BinaryNinja::DisassemblySettings* settings,
const std::vector<BinaryNinja::HighLevelILInstruction>& parameterExprs);
bool GetExpr_GenericObjCRuntimeCall(uint64_t address, const BinaryNinja::HighLevelILInstruction& expr,