From a6474b936aa92f55c6a87a188985c3a5294745eb Mon Sep 17 00:00:00 2001 From: Tom Ball Date: Fri, 29 Jul 2022 16:52:18 -0700 Subject: [PATCH] Rewrite of j2objc_library.bzl to use an aspect to generate build actions for all java_library dependencies, like the native rule does. PiperOrigin-RevId: 464184706 --- examples/protobuf/AddressBook/j2objc_main.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/examples/protobuf/AddressBook/j2objc_main.m b/examples/protobuf/AddressBook/j2objc_main.m index aee9134690..488ff3dfe8 100644 --- a/examples/protobuf/AddressBook/j2objc_main.m +++ b/examples/protobuf/AddressBook/j2objc_main.m @@ -75,7 +75,14 @@ int j2objc_main(const char* className, int argc, const char *argv[]) { IOSClass *clazz = [IOSClass forName:[NSString stringWithUTF8String:className]]; IOSObjectArray *mainArgs = JreEmulationMainArguments(argc, argv); SEL mainSelector = sel_registerName("mainWithNSStringArray:"); +#if __has_feature(objc_arc) + // Avoid a -Warc-performSelector-leaks false-positive warning. + IMP imp = [clazz.objcClass methodForSelector:mainSelector]; + void (*func)(id, SEL, id) = (void *)imp; + func(nil, mainSelector, mainArgs); +#else [clazz.objcClass performSelector:mainSelector withObject:mainArgs]; +#endif } @catch (JavaLangClassNotFoundException *e) { fprintf(stderr, "Error: could not find or load main class %s\n", className);