diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2025-05-30 09:22:50 -0700 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2025-06-18 10:44:49 -0400 |
| commit | 90d5791ef7b211ca8f792eb64f9452f6df92d1e0 (patch) | |
| tree | 0c739461f6ad946fa917de2f94029ad03c6e1d85 /lang/c/pseudoobjc.h | |
| parent | b6b98c07eb8ce704da4edf5a0b16959215a2c450 (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.h | 4 |
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, |
