Skip to content

Commit 808a181

Browse files
Dave MacLachlancopybara-github
authored andcommitted
Move to using objc_externally_retained to elide unneeded calls to retain/release in j2objc protobuf code.
PiperOrigin-RevId: 841790480
1 parent 7c46e6c commit 808a181

File tree

8 files changed

+72
-97
lines changed

8 files changed

+72
-97
lines changed

jre_emul/Classes/J2ObjC_common.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@ __attribute__((always_inline)) inline id JreRetainedAutoreleasedReturnValue(id v
127127
# define WEAK_ __unsafe_unretained
128128
#endif
129129

130+
#ifndef J2OBJC_EXTERNALLY_RETAINED
131+
#if __has_feature(objc_arc) && __has_attribute(objc_externally_retained)
132+
# define J2OBJC_EXTERNALLY_RETAINED __attribute__((objc_externally_retained))
133+
# define J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN _Pragma("clang attribute J2OBJC_ASSUME_EXTERNALLY_RETAINED.push(__attribute__((objc_externally_retained)), apply_to=any(function, block, objc_method))")
134+
# define J2OBJC_ASSUME_EXTERNALLY_RETAINED_END _Pragma("clang attribute J2OBJC_ASSUME_EXTERNALLY_RETAINED.pop")
135+
#else // __OBJC__ && objc_arc && objc_externally_retained
136+
# define J2OBJC_EXTERNALLY_RETAINED
137+
# define J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN
138+
# define J2OBJC_ASSUME_EXTERNALLY_RETAINED_END
139+
#endif // __OBJC__ && objc_arc && objc_externally_retained
140+
#endif // !J2OBJC_EXTERNALLY_RETAINED
141+
130142
CF_EXTERN_C_BEGIN
131143

132144
id JreThrowNullPointerException(void) __attribute__((noreturn));

protobuf/compiler/src/google/protobuf/compiler/j2objc/j2objc_enum.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ void EnumGenerator::GenerateSource(io::Printer* printer) {
398398
"\n"
399399
"@end\n"
400400
"\n"
401+
"J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN\n"
401402
"J2OBJC_CLASS_TYPE_LITERAL_SOURCE($classname$)\n"
402403
"\n"
403404
"IOSObjectArray *$classname$_values(void) {\n"
@@ -471,6 +472,7 @@ void EnumGenerator::GenerateSource(io::Printer* printer) {
471472
"}\n",
472473
"classname", ClassName(descriptor_), "name", "UNRECOGNIZED");
473474
}
475+
printer->Print("\nJ2OBJC_ASSUME_EXTERNALLY_RETAINED_END\n");
474476
}
475477

476478
} // namespace j2objc

protobuf/compiler/src/google/protobuf/compiler/j2objc/j2objc_message.cc

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -236,40 +236,12 @@ void MessageGenerator::GenerateHeader(io::Printer* printer) {
236236
"classname", ClassName(descriptor_), "superclassname", superclassName);
237237
}
238238
printer->Print(
239-
"+ (nonnull $classname$ *)getDefaultInstance;\n"
240-
"- (nonnull $classname$ *)getDefaultInstanceForType;\n"
241239
"+ (nonnull $classname$_Builder *)newBuilder OBJC_METHOD_FAMILY_NONE;\n"
242240
"- (nonnull $classname$_Builder *)newBuilderForType "
243241
"OBJC_METHOD_FAMILY_NONE;\n"
244242
"- (nonnull $classname$_Builder *)toBuilder;\n"
245243
"+ (nonnull $classname$_Builder *)newBuilderWith$classname$:"
246-
"($classname$ *)message OBJC_METHOD_FAMILY_NONE;\n"
247-
"+ (nonnull ComGoogleProtobufDescriptors_Descriptor *)getDescriptor;\n"
248-
"+ ($classname$ *)parseFromWithByteArray:(IOSByteArray *)bytes;\n"
249-
"+ ($classname$ *)parseFromWithByteArray:(IOSByteArray *)bytes "
250-
"withComGoogleProtobufExtensionRegistryLite:"
251-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
252-
"+ ($classname$ *)parseFromNSData:(NSData *)data;\n"
253-
"+ ($classname$ *)parseFromNSData:(NSData *)data registry:"
254-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
255-
"+ ($classname$ *)parseFromWithJavaIoInputStream:"
256-
"(JavaIoInputStream *)input;\n"
257-
"+ ($classname$ *)parseFromWithJavaIoInputStream:"
258-
"(JavaIoInputStream *)bytes "
259-
"withComGoogleProtobufExtensionRegistryLite:"
260-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
261-
"+ ($classname$ *)parseFromWithComGoogleProtobufByteString:"
262-
"(ComGoogleProtobufByteString *)byteString;\n"
263-
"+ (id)parseFromWithComGoogleProtobufByteString:("
264-
"ComGoogleProtobufByteString *)byteString "
265-
"withComGoogleProtobufExtensionRegistryLite:"
266-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
267-
"+ ($classname$ *)parseDelimitedFromWithJavaIoInputStream:"
268-
"(JavaIoInputStream *)input;\n"
269-
"+ ($classname$ *)parseDelimitedFromWithJavaIoInputStream:"
270-
"(JavaIoInputStream *)bytes "
271-
"withComGoogleProtobufExtensionRegistryLite:"
272-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n",
244+
"($classname$ *)message OBJC_METHOD_FAMILY_NONE;\n",
273245
"classname", ClassName(descriptor_), "superclassname", superclassName);
274246

275247
if (descriptor_->field_count() > 0) {
@@ -546,6 +518,7 @@ void MessageGenerator::GenerateSource(io::Printer* printer) {
546518
"\n"
547519
"@end\n"
548520
"\n"
521+
"J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN\n"
549522
"J2OBJC_CLASS_TYPE_LITERAL_SOURCE($classname$)\n"
550523
"\n"
551524
"$classname$ * _Nonnull $classname$_getDefaultInstance(void) {\n"
@@ -603,6 +576,7 @@ void MessageGenerator::GenerateSource(io::Printer* printer) {
603576
"$classname$_descriptor_, input, registry);\n"
604577
"}\n",
605578
"classname", ClassName(descriptor_));
579+
printer->Print("\nJ2OBJC_ASSUME_EXTERNALLY_RETAINED_END\n");
606580

607581
for (int i = 0; i < descriptor_->real_oneof_decl_count(); i++) {
608582
OneofGenerator(descriptor_->oneof_decl(i)).GenerateSource(printer);
@@ -637,14 +611,10 @@ void MessageGenerator::GenerateBuilderHeader(io::Printer* printer) {
637611
"@interface $classname$_Builder : "
638612
"$superclassname$<$classname$OrBuilder>\n"
639613
"\n"
640-
"- (nonnull $classname$ *)getDefaultInstanceForType;\n"
641614
"- (nonnull $classname$_Builder *)mergeFromWith$classname$:"
642615
"(nonnull $classname$ *)message;\n"
643-
"- (nonnull $classname$_Builder *)mergeFromWithComGoogleProtobufMessage:"
644-
"(nonnull id<ComGoogleProtobufMessage>)message;\n"
645616
"- (nonnull $classname$ *)build;\n"
646-
"- (nonnull $classname$ *)buildPartial;\n"
647-
"+ (nonnull ComGoogleProtobufDescriptors_Descriptor *)getDescriptor;\n",
617+
"- (nonnull $classname$ *)buildPartial;\n",
648618
"classname", ClassName(descriptor_), "superclassname", superclassName);
649619

650620
for (int i = 0; i < descriptor_->field_count(); i++) {

protobuf/compiler/src/google/protobuf/compiler/j2objc/j2objc_message_lite.cc

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -169,34 +169,12 @@ void MessageLiteGenerator::GenerateHeader(io::Printer* printer) {
169169
"\n"
170170
"// in j2objc_message_lite.cc \n"
171171
"@interface $classname$ : $superclassname$<$classname$OrBuilder>\n\n"
172-
"+ (nonnull $classname$ *)getDefaultInstance;\n"
173-
"- (nonnull $classname$ *)getDefaultInstanceForType;\n"
174172
"+ (nonnull $classname$_Builder *)newBuilder OBJC_METHOD_FAMILY_NONE;\n"
175173
"- (nonnull $classname$_Builder *)newBuilderForType "
176174
"OBJC_METHOD_FAMILY_NONE;\n"
177175
"- (nonnull $classname$_Builder *)toBuilder;\n"
178176
"+ (nonnull $classname$_Builder *)newBuilderWith$classname$:"
179-
"($classname$ *)message OBJC_METHOD_FAMILY_NONE;\n"
180-
"+ (nonnull ComGoogleProtobufDescriptors_Descriptor *)getDescriptor;\n"
181-
"+ ($classname$ *)parseFromWithByteArray:(IOSByteArray *)bytes;\n"
182-
"+ ($classname$ *)parseFromWithByteArray:(IOSByteArray *)bytes "
183-
"withComGoogleProtobufExtensionRegistryLite:"
184-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
185-
"+ ($classname$ *)parseFromNSData:(NSData *)data;\n"
186-
"+ ($classname$ *)parseFromNSData:(NSData *)data registry:"
187-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
188-
"+ ($classname$ *)parseFromWithJavaIoInputStream:"
189-
"(JavaIoInputStream *)input;\n"
190-
"+ ($classname$ *)parseFromWithJavaIoInputStream:"
191-
"(JavaIoInputStream *)bytes "
192-
"withComGoogleProtobufExtensionRegistryLite:"
193-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n"
194-
"+ ($classname$ *)parseDelimitedFromWithJavaIoInputStream:"
195-
"(JavaIoInputStream *)input;\n"
196-
"+ ($classname$ *)parseDelimitedFromWithJavaIoInputStream:"
197-
"(JavaIoInputStream *)bytes "
198-
"withComGoogleProtobufExtensionRegistryLite:"
199-
"(ComGoogleProtobufExtensionRegistryLite *)registry;\n",
177+
"($classname$ *)message OBJC_METHOD_FAMILY_NONE;\n",
200178
"classname", ClassName(descriptor_), "superclassname", superclassName);
201179
if (descriptor_->field_count() > 0) {
202180
printer->Print("\n");
@@ -420,6 +398,7 @@ void MessageLiteGenerator::GenerateSource(io::Printer* printer) {
420398
"\n"
421399
"@end\n"
422400
"\n"
401+
"J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN\n"
423402
"J2OBJC_CLASS_TYPE_LITERAL_SOURCE($classname$)\n"
424403
"\n"
425404
"$classname$ * _Nonnull $classname$_getDefaultInstance(void) {\n"
@@ -477,6 +456,7 @@ void MessageLiteGenerator::GenerateSource(io::Printer* printer) {
477456
"$classname$_descriptor_, input, registry);\n"
478457
"}\n",
479458
"classname", ClassName(descriptor_));
459+
printer->Print("\nJ2OBJC_ASSUME_EXTERNALLY_RETAINED_END\n");
480460

481461
for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
482462
OneofGenerator(descriptor_->oneof_decl(i)).GenerateSource(printer);
@@ -506,13 +486,9 @@ void MessageLiteGenerator::GenerateBuilderHeader(io::Printer* printer) {
506486
"$superclassname$<$classname$OrBuilder>\n"
507487
"\n"
508488
"- ($classname$ *)getDefaultInstanceForType;\n"
509-
"- ($classname$_Builder *)mergeFromWith$classname$:"
510-
"($classname$ *)message;\n"
511-
"- ($classname$_Builder *)mergeFromWithComGoogleProtobufMessage:"
512-
"(id<ComGoogleProtobufMessage>)message;\n"
489+
"- (instancetype)mergeFromWith$classname$:($classname$ *)message;\n"
513490
"- ($classname$ *)build;\n"
514-
"- ($classname$ *)buildPartial;\n"
515-
"+ (nonnull ComGoogleProtobufDescriptors_Descriptor *)getDescriptor;\n",
491+
"- ($classname$ *)buildPartial;\n",
516492
"classname", ClassName(descriptor_), "superclassname", superclassName);
517493

518494
for (int i = 0; i < descriptor_->field_count(); i++) {

protobuf/compiler/src/google/protobuf/compiler/j2objc/j2objc_oneof.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ void OneofGenerator::GenerateSource(io::Printer* printer) {
326326
"\n"
327327
"@end\n"
328328
"\n"
329+
"J2OBJC_ASSUME_EXTERNALLY_RETAINED_BEGIN\n"
329330
"J2OBJC_CLASS_TYPE_LITERAL_SOURCE($classname$)\n"
330331
"\n"
331332
"IOSObjectArray *$classname$_values(void) {\n"
@@ -379,6 +380,7 @@ void OneofGenerator::GenerateSource(io::Printer* printer) {
379380
"classname", CaseClassName(descriptor_),
380381
"name", CaseValueName(descriptor_->field(i)));
381382
}
383+
printer->Print("\nJ2OBJC_ASSUME_EXTERNALLY_RETAINED_END\n");
382384
}
383385

384386
void OneofGenerator::GenerateMessageOrBuilder(io::Printer* printer) {

protobuf/runtime/src/com/google/protobuf/GeneratedMessage.h

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,26 @@ typedef ComGoogleProtobufGeneratedMessage_GeneratedExtension CGPGeneratedExtensi
5454

5555
@interface ComGoogleProtobufGeneratedMessage : ComGoogleProtobufAbstractMessage
5656

57-
+ (id)getDescriptor;
58-
+ (id)parseFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)byteString;
59-
+ (id)parseFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)byteString
57+
+ (nonnull ComGoogleProtobufDescriptors_Descriptor *)getDescriptor;
58+
+ (nonnull instancetype)getDefaultInstance;
59+
- (nonnull instancetype)getDefaultInstanceForType;
60+
+ (instancetype)parseFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)byteString;
61+
+ (instancetype)parseFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)byteString
62+
withComGoogleProtobufExtensionRegistryLite:
63+
(ComGoogleProtobufExtensionRegistryLite *)registry;
64+
+ (instancetype)parseFromNSData:(NSData *)data;
65+
+ (instancetype)parseFromNSData:(NSData *)data
66+
registry:(ComGoogleProtobufExtensionRegistryLite *)registry;
67+
+ (instancetype)parseFromWithByteArray:(IOSByteArray *)bytes;
68+
+ (instancetype)parseFromWithByteArray:(IOSByteArray *)bytes
6069
withComGoogleProtobufExtensionRegistryLite:(ComGoogleProtobufExtensionRegistryLite *)registry;
61-
+ (id)parseFromNSData:(NSData *)data;
62-
+ (id)parseFromNSData:(NSData *)data registry:(ComGoogleProtobufExtensionRegistryLite *)registry;
63-
70+
+ (instancetype)parseFromWithJavaIoInputStream:(JavaIoInputStream *)input;
71+
+ (instancetype)parseFromWithJavaIoInputStream:(JavaIoInputStream *)bytes
72+
withComGoogleProtobufExtensionRegistryLite:(ComGoogleProtobufExtensionRegistryLite *)registry;
73+
+ (instancetype)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input;
74+
+ (instancetype)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)bytes
75+
withComGoogleProtobufExtensionRegistryLite:
76+
(ComGoogleProtobufExtensionRegistryLite *)registry;
6477
@end
6578

6679
J2OBJC_EMPTY_STATIC_INIT(ComGoogleProtobufGeneratedMessage)
@@ -69,18 +82,19 @@ J2OBJC_TYPE_LITERAL_HEADER(ComGoogleProtobufGeneratedMessage)
6982

7083
@interface ComGoogleProtobufGeneratedMessage_Builder : ComGoogleProtobufAbstractMessage_Builder
7184

72-
- (id)mergeFromWithJavaIoInputStream:(JavaIoInputStream *)input;
73-
- (id)mergeFromWithJavaIoInputStream:(JavaIoInputStream *)input
74-
withComGoogleProtobufExtensionRegistryLite:
75-
(ComGoogleProtobufExtensionRegistryLite *)extensionRegistry;
76-
- (id)mergeFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)data;
77-
- (id)mergeFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)data
85+
- (instancetype)mergeFromWithJavaIoInputStream:(JavaIoInputStream *)input;
86+
- (instancetype)mergeFromWithJavaIoInputStream:(JavaIoInputStream *)input
7887
withComGoogleProtobufExtensionRegistryLite:
7988
(ComGoogleProtobufExtensionRegistryLite *)extensionRegistry;
80-
- (id)mergeFromWithByteArray:(IOSByteArray *)data;
81-
- (id)mergeFromWithByteArray:(IOSByteArray *)data
89+
- (instancetype)mergeFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)data;
90+
- (instancetype)mergeFromWithComGoogleProtobufByteString:(ComGoogleProtobufByteString *)data
91+
withComGoogleProtobufExtensionRegistryLite:
92+
(ComGoogleProtobufExtensionRegistryLite *)extensionRegistry;
93+
- (instancetype)mergeFromWithByteArray:(IOSByteArray *)data;
94+
- (instancetype)mergeFromWithByteArray:(IOSByteArray *)data
8295
withComGoogleProtobufExtensionRegistryLite:
8396
(ComGoogleProtobufExtensionRegistryLite *)extensionRegistry;
97+
- (instancetype)mergeFromWithComGoogleProtobufMessage:(id<ComGoogleProtobufMessage>)message;
8498

8599
@end
86100

protobuf/runtime/src/com/google/protobuf/GeneratedMessage.mm

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3381,39 +3381,39 @@ - (ComGoogleProtobufGeneratedMessage_Builder *)toBuilder {
33813381
return AUTORELEASE(newBuilder);
33823382
}
33833383

3384-
+ (ComGoogleProtobufGeneratedMessage *)getDefaultInstance {
3384+
+ (instancetype)getDefaultInstance {
33853385
CGPDescriptor *descriptor = [self getDescriptor];
33863386
return AUTORELEASE(CGPNewMessage(descriptor));
33873387
}
33883388

3389-
- (ComGoogleProtobufGeneratedMessage *)getDefaultInstanceForType {
3389+
- (instancetype)getDefaultInstanceForType {
33903390
CGPDescriptor *descriptor = [object_getClass(self) getDescriptor];
33913391
return descriptor->defaultInstance_;
33923392
}
33933393

3394-
+ (id)parseFromWithByteArray:(IOSByteArray *)bytes {
3394+
+ (instancetype)parseFromWithByteArray:(IOSByteArray *)bytes {
33953395
return CGPParseFromByteArray([self getDescriptor], bytes, nil);
33963396
}
33973397

3398-
+ (id)parseFromWithByteArray:(IOSByteArray *)bytes
3398+
+ (instancetype)parseFromWithByteArray:(IOSByteArray *)bytes
33993399
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
34003400
return CGPParseFromByteArray([self getDescriptor], bytes, registry);
34013401
}
34023402

3403-
+ (id)parseFromWithComGoogleProtobufByteString:(CGPByteString *)byteString {
3403+
+ (instancetype)parseFromWithComGoogleProtobufByteString:(CGPByteString *)byteString {
34043404
return CGPParseFromByteString([self getDescriptor], byteString, nil);
34053405
}
34063406

3407-
+ (id)parseFromWithComGoogleProtobufByteString:(CGPByteString *)byteString
3408-
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
3407+
+ (instancetype)parseFromWithComGoogleProtobufByteString:(CGPByteString *)byteString
3408+
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
34093409
return CGPParseFromByteString([self getDescriptor], byteString, registry);
34103410
}
34113411

3412-
+ (id)parseFromNSData:(NSData *)data {
3412+
+ (instancetype)parseFromNSData:(NSData *)data {
34133413
return [self parseFromNSData:data registry:nil];
34143414
}
34153415

3416-
+ (id)parseFromNSData:(NSData *)data registry:(CGPExtensionRegistryLite *)registry {
3416+
+ (instancetype)parseFromNSData:(NSData *)data registry:(CGPExtensionRegistryLite *)registry {
34173417
CGPDescriptor *descriptor = [self getDescriptor];
34183418
ComGoogleProtobufGeneratedMessage *msg = AUTORELEASE(CGPNewMessage(descriptor));
34193419
CGPCodedInputStream codedStream([data bytes], (int)[data length]);
@@ -3426,21 +3426,21 @@ + (id)parseFromNSData:(NSData *)data registry:(CGPExtensionRegistryLite *)regist
34263426
return msg;
34273427
}
34283428

3429-
+ (id)parseFromWithJavaIoInputStream:(JavaIoInputStream *)input {
3429+
+ (instancetype)parseFromWithJavaIoInputStream:(JavaIoInputStream *)input {
34303430
return CGPParseFromInputStream([self getDescriptor], input, nil);
34313431
}
34323432

3433-
+ (id)parseFromWithJavaIoInputStream:(JavaIoInputStream *)input
3433+
+ (instancetype)parseFromWithJavaIoInputStream:(JavaIoInputStream *)input
34343434
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
34353435
return CGPParseFromInputStream([self getDescriptor], input, registry);
34363436
}
34373437

3438-
+ (id)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input {
3438+
+ (instancetype)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input {
34393439
return CGPParseDelimitedFromInputStream([self getDescriptor], input, nil);
34403440
}
34413441

3442-
+ (id)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input
3443-
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
3442+
+ (instancetype)parseDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input
3443+
withComGoogleProtobufExtensionRegistryLite:(CGPExtensionRegistryLite *)registry {
34443444
return CGPParseDelimitedFromInputStream([self getDescriptor], input, registry);
34453445
}
34463446

@@ -3653,9 +3653,9 @@ - (CGPDescriptor *)getDescriptorForType {
36533653
return [object_getClass(self) getDescriptor];
36543654
}
36553655

3656-
- (ComGoogleProtobufGeneratedMessage *)getDefaultInstanceForType {
3656+
- (instancetype)getDefaultInstanceForType {
36573657
CGPDescriptor *descriptor = [object_getClass(self) getDescriptor];
3658-
return descriptor->defaultInstance_;
3658+
return (id)descriptor->defaultInstance_;
36593659
}
36603660

36613661
- (id<ComGoogleProtobufMessage_Builder>)
@@ -3765,8 +3765,7 @@ - (id)getRepeatedFieldWithComGoogleProtobufDescriptors_FieldDescriptor:
37653765
return GetAllFields(self);
37663766
}
37673767

3768-
- (id<ComGoogleProtobufMessage_Builder>)mergeFromWithComGoogleProtobufMessage:
3769-
(id<ComGoogleProtobufMessage>)message {
3768+
- (instancetype)mergeFromWithComGoogleProtobufMessage:(id<ComGoogleProtobufMessage>)message {
37703769
CGPDescriptor *descriptor = [object_getClass(self) getDescriptor];
37713770
CGPDescriptor *otherDescriptor = [object_getClass(message) getDescriptor];
37723771
if (descriptor != otherDescriptor) {
@@ -3840,7 +3839,7 @@ - (bool)mergeDelimitedFromWithJavaIoInputStream:(JavaIoInputStream *)input
38403839
return self;
38413840
}
38423841

3843-
- (id<ComGoogleProtobufMessage_Builder>)mergeFromWithByteArray:(IOSByteArray *)data {
3842+
- (instancetype)mergeFromWithByteArray:(IOSByteArray *)data {
38443843
return [self mergeFromWithByteArray:data withComGoogleProtobufExtensionRegistryLite:nil];
38453844
}
38463845

protobuf/runtime/src/com/google/protobuf/MessageOrBuilder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
@protocol ComGoogleProtobufMessageOrBuilder <JavaObject>
4444

45-
- (id<ComGoogleProtobufMessage>)getDefaultInstanceForType;
45+
- (instancetype)getDefaultInstanceForType;
4646

4747
- (jint)getRepeatedFieldCountWithComGoogleProtobufDescriptors_FieldDescriptor:
4848
(ComGoogleProtobufDescriptors_FieldDescriptor *)descriptor;

0 commit comments

Comments
 (0)