Index: ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.mm |
diff --git a/ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.mm b/ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.mm |
index d1d120a79866e35e1cdf9bcc43c2e2170db9c7f7..441ae48780bba54e75df8b53e2be38aadfccd2a3 100644 |
--- a/ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.mm |
+++ b/ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.mm |
@@ -20,11 +20,16 @@ void DispatchContextMenuCommands(const std::vector<SEL>& commands, |
ContextMenuContext* context) { |
DCHECK(dispatcher); |
DCHECK(context); |
+// |-performSelector:withObject:| throws a warning in ARC because the compiler |
+// doesn't know how to handle the memory management of the returned values. |
+// Since all ContextMenuCommands return void, these warning can be ignored |
+// here. |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks" |
for (SEL command : commands) { |
- IMP command_imp = [dispatcher methodForSelector:command]; |
- DCHECK(command_imp); |
- command_imp(dispatcher, command, context); |
+ [dispatcher performSelector:command withObject:context]; |
} |
+#pragma clang diagnostic pop |
} |
} |