From 90d5791ef7b211ca8f792eb64f9452f6df92d1e0 Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Fri, 30 May 2025 09:22:50 -0700 Subject: [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` --- lang/c/pseudoobjc.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lang/c/pseudoobjc.h') 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& parameterExprs); bool GetExpr_GenericObjCRuntimeCall(uint64_t address, const BinaryNinja::HighLevelILInstruction& expr, -- cgit v1.3.1