diff options
author | Tor Lillqvist <tml@iki.fi> | 2020-12-05 18:16:37 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2020-12-05 20:30:01 +0100 |
commit | ecb916667b633f8647790e040226b093760e6cfe (patch) | |
tree | b372198368cefcc798c991a8656a0f14e2419c53 | |
parent | 5bf61e98b0746a4afeb68a80e54b4eb4bf4ea89f (diff) |
Remove remaining bogus use of objc_msgSend()
Follow-up to 5bf61e98b0746a4afeb68a80e54b4eb4bf4ea89f.
Should avoid crashes when running as arm64 code on macOS on arm64.
Change-Id: Id05d182684df82c8a7bf09f6bb7e8ccb01997b62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107259
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
5 files changed, 7 insertions, 28 deletions
diff --git a/extensions/source/macosx/spotlight/OOoContentDataParser.h b/extensions/source/macosx/spotlight/OOoContentDataParser.h index 7112497cf7de..dc07a3166122 100644 --- a/extensions/source/macosx/spotlight/OOoContentDataParser.h +++ b/extensions/source/macosx/spotlight/OOoContentDataParser.h @@ -19,7 +19,7 @@ #import <Cocoa/Cocoa.h> -@interface OOoContentDataParser : NSObject { +@interface OOoContentDataParser : NSObject <NSXMLParserDelegate> { // indicates if we are interested in an element's content BOOL shouldReadCharacters; diff --git a/extensions/source/macosx/spotlight/OOoContentDataParser.m b/extensions/source/macosx/spotlight/OOoContentDataParser.m index d3ecf16ffaab..e1f51e5b90c7 100644 --- a/extensions/source/macosx/spotlight/OOoContentDataParser.m +++ b/extensions/source/macosx/spotlight/OOoContentDataParser.m @@ -47,12 +47,7 @@ NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; - // Once again... - // class 'OOoContentDataParser' does not implement the 'NSXMLParserDelegate' protocol - // So instead of this: - // [parser setDelegate:self]; - // do this: - ((id (*)(id, SEL, ...))objc_msgSend)(parser, @selector(setDelegate:), self); + [parser setDelegate:self]; [parser setShouldResolveExternalEntities:NO]; [parser parse]; diff --git a/extensions/source/macosx/spotlight/OOoMetaDataParser.h b/extensions/source/macosx/spotlight/OOoMetaDataParser.h index 5db7634cce0c..85d48b1735d7 100644 --- a/extensions/source/macosx/spotlight/OOoMetaDataParser.h +++ b/extensions/source/macosx/spotlight/OOoMetaDataParser.h @@ -20,7 +20,7 @@ #import <Cocoa/Cocoa.h> -@interface OOoMetaDataParser : NSObject { +@interface OOoMetaDataParser : NSObject <NSXMLParserDelegate> { //indicates if content should be read BOOL shouldReadCharacters; //indicates if the current element is a custom metadata tag diff --git a/extensions/source/macosx/spotlight/OOoMetaDataParser.m b/extensions/source/macosx/spotlight/OOoMetaDataParser.m index 2b4dac82c555..1e7cac685b88 100644 --- a/extensions/source/macosx/spotlight/OOoMetaDataParser.m +++ b/extensions/source/macosx/spotlight/OOoMetaDataParser.m @@ -91,11 +91,7 @@ static NSDictionary *metaXML2MDIKeys; NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; - // class 'OOoMetaDataParser' does not implement the 'NSXMLParserDelegate' protocol - // So instead of this: - // [parser setDelegate:self]; - // do this: - ((id (*)(id, SEL, ...))objc_msgSend)(parser, @selector(setDelegate:), self); + [parser setDelegate:self]; [parser setShouldResolveExternalEntities:NO]; [parser parse]; diff --git a/sfx2/source/appl/shutdowniconaqua.mm b/sfx2/source/appl/shutdowniconaqua.mm index dc824e91d92d..9d788db1abe7 100644 --- a/sfx2/source/appl/shutdowniconaqua.mm +++ b/sfx2/source/appl/shutdowniconaqua.mm @@ -146,7 +146,7 @@ class RecentFilesStringLength : public ::cppu::WeakImplHelper< css::util::XStrin } -@interface RecentMenuDelegate : NSObject +@interface RecentMenuDelegate : NSObject <NSMenuDelegate> { std::vector< RecentMenuEntry >* m_pRecentFilesItems; } @@ -347,16 +347,7 @@ static void appendRecentMenu( NSMenu* i_pMenu, NSMenu* i_pDockMenu, const OUStri [pItem setEnabled: YES]; NSMenu* pRecentMenu = [[NSMenu alloc] initWithTitle: getAutoreleasedString( i_rTitle ) ]; - // When compiling against 10.6 SDK, we get the warning: - // class 'RecentMenuDelegate' does not implement the 'NSMenuDelegate' protocol - - // No idea if that is a bogus warning, or if the way this is - // implemented just is so weird that the compiler gets - // confused. Anyway, to avoid warnings, instead of this: - // [pRecentMenu setDelegate: pRecentDelegate]; - // do this: - reinterpret_cast<id (*)(id, SEL, ...)>(objc_msgSend)( - pRecentMenu, @selector(setDelegate:), pRecentDelegate); + [pRecentMenu setDelegate: pRecentDelegate]; [pRecentMenu setAutoenablesItems: NO]; [pItem setSubmenu: pRecentMenu]; @@ -371,10 +362,7 @@ static void appendRecentMenu( NSMenu* i_pMenu, NSMenu* i_pDockMenu, const OUStri [pItem setEnabled: YES]; pRecentMenu = [[NSMenu alloc] initWithTitle: getAutoreleasedString( i_rTitle ) ]; - // See above - // [pRecentMenu setDelegate: pRecentDelegate]; - reinterpret_cast<id (*)(id, SEL, ...)>(objc_msgSend)( - pRecentMenu, @selector(setDelegate:), pRecentDelegate); + [pRecentMenu setDelegate: pRecentDelegate]; [pRecentMenu setAutoenablesItems: NO]; [pItem setSubmenu: pRecentMenu]; |