| Index: third_party/protobuf/objectivec/GPBDescriptor.m
|
| diff --git a/third_party/protobuf/objectivec/GPBDescriptor.m b/third_party/protobuf/objectivec/GPBDescriptor.m
|
| index 0753a9485bb833c56715269ffb621d4a5059dca6..2709737cad6ad26eda139af8d9a42880d2a63e16 100644
|
| --- a/third_party/protobuf/objectivec/GPBDescriptor.m
|
| +++ b/third_party/protobuf/objectivec/GPBDescriptor.m
|
| @@ -36,16 +36,8 @@
|
| #import "GPBWireFormat.h"
|
| #import "GPBMessage_PackagePrivate.h"
|
|
|
| -// Direct access is use for speed, to avoid even internally declaring things
|
| -// read/write, etc. The warning is enabled in the project to ensure code calling
|
| -// protos can turn on -Wdirect-ivar-access without issues.
|
| -#pragma clang diagnostic push
|
| -#pragma clang diagnostic ignored "-Wdirect-ivar-access"
|
| -
|
| -// The addresses of these variables are used as keys for objc_getAssociatedObject.
|
| +// The address of this variable is used as a key for obj_getAssociatedObject.
|
| static const char kTextFormatExtraValueKey = 0;
|
| -static const char kParentClassNameValueKey = 0;
|
| -static const char kClassNameSuffixKey = 0;
|
|
|
| // Utility function to generate selectors on the fly.
|
| static SEL SelFromStrings(const char *prefix, const char *middle,
|
| @@ -217,102 +209,10 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
|
| extensionRangesCount_ = count;
|
| }
|
|
|
| -- (void)setupContainingMessageClassName:(const char *)msgClassName {
|
| - // Note: Only fetch the class here, can't send messages to it because
|
| - // that could cause cycles back to this class within +initialize if
|
| - // two messages have each other in fields (i.e. - they build a graph).
|
| - NSAssert(objc_getClass(msgClassName), @"Class %s not defined", msgClassName);
|
| - NSValue *parentNameValue = [NSValue valueWithPointer:msgClassName];
|
| - objc_setAssociatedObject(self, &kParentClassNameValueKey,
|
| - parentNameValue,
|
| - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
| -}
|
| -
|
| -- (void)setupMessageClassNameSuffix:(NSString *)suffix {
|
| - if (suffix.length) {
|
| - objc_setAssociatedObject(self, &kClassNameSuffixKey,
|
| - suffix,
|
| - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
| - }
|
| -}
|
| -
|
| - (NSString *)name {
|
| return NSStringFromClass(messageClass_);
|
| }
|
|
|
| -- (GPBDescriptor *)containingType {
|
| - NSValue *parentNameValue =
|
| - objc_getAssociatedObject(self, &kParentClassNameValueKey);
|
| - if (!parentNameValue) {
|
| - return nil;
|
| - }
|
| - const char *parentName = [parentNameValue pointerValue];
|
| - Class parentClass = objc_getClass(parentName);
|
| - NSAssert(parentClass, @"Class %s not defined", parentName);
|
| - return [parentClass descriptor];
|
| -}
|
| -
|
| -- (NSString *)fullName {
|
| - NSString *className = NSStringFromClass(self.messageClass);
|
| - GPBFileDescriptor *file = self.file;
|
| - NSString *objcPrefix = file.objcPrefix;
|
| - if (objcPrefix && ![className hasPrefix:objcPrefix]) {
|
| - NSAssert(0,
|
| - @"Class didn't have correct prefix? (%@ - %@)",
|
| - className, objcPrefix);
|
| - return nil;
|
| - }
|
| - GPBDescriptor *parent = self.containingType;
|
| -
|
| - NSString *name = nil;
|
| - if (parent) {
|
| - NSString *parentClassName = NSStringFromClass(parent.messageClass);
|
| - // The generator will add _Class to avoid reserved words, drop it.
|
| - NSString *suffix = objc_getAssociatedObject(parent, &kClassNameSuffixKey);
|
| - if (suffix) {
|
| - if (![parentClassName hasSuffix:suffix]) {
|
| - NSAssert(0,
|
| - @"ParentMessage class didn't have correct suffix? (%@ - %@)",
|
| - className, suffix);
|
| - return nil;
|
| - }
|
| - parentClassName =
|
| - [parentClassName substringToIndex:(parentClassName.length - suffix.length)];
|
| - }
|
| - NSString *parentPrefix = [parentClassName stringByAppendingString:@"_"];
|
| - if (![className hasPrefix:parentPrefix]) {
|
| - NSAssert(0,
|
| - @"Class didn't have the correct parent name prefix? (%@ - %@)",
|
| - parentPrefix, className);
|
| - return nil;
|
| - }
|
| - name = [className substringFromIndex:parentPrefix.length];
|
| - } else {
|
| - name = [className substringFromIndex:objcPrefix.length];
|
| - }
|
| -
|
| - // The generator will add _Class to avoid reserved words, drop it.
|
| - NSString *suffix = objc_getAssociatedObject(self, &kClassNameSuffixKey);
|
| - if (suffix) {
|
| - if (![name hasSuffix:suffix]) {
|
| - NSAssert(0,
|
| - @"Message class didn't have correct suffix? (%@ - %@)",
|
| - name, suffix);
|
| - return nil;
|
| - }
|
| - name = [name substringToIndex:(name.length - suffix.length)];
|
| - }
|
| -
|
| - NSString *prefix = (parent != nil ? parent.fullName : file.package);
|
| - NSString *result;
|
| - if (prefix.length > 0) {
|
| - result = [NSString stringWithFormat:@"%@.%@", prefix, name];
|
| - } else {
|
| - result = name;
|
| - }
|
| - return result;
|
| -}
|
| -
|
| - (id)copyWithZone:(NSZone *)zone {
|
| #pragma unused(zone)
|
| return [self retain];
|
| @@ -349,27 +249,13 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
|
|
|
| @implementation GPBFileDescriptor {
|
| NSString *package_;
|
| - NSString *objcPrefix_;
|
| GPBFileSyntax syntax_;
|
| }
|
|
|
| @synthesize package = package_;
|
| -@synthesize objcPrefix = objcPrefix_;
|
| @synthesize syntax = syntax_;
|
|
|
| - (instancetype)initWithPackage:(NSString *)package
|
| - objcPrefix:(NSString *)objcPrefix
|
| - syntax:(GPBFileSyntax)syntax {
|
| - self = [super init];
|
| - if (self) {
|
| - package_ = [package copy];
|
| - objcPrefix_ = [objcPrefix copy];
|
| - syntax_ = syntax;
|
| - }
|
| - return self;
|
| -}
|
| -
|
| -- (instancetype)initWithPackage:(NSString *)package
|
| syntax:(GPBFileSyntax)syntax {
|
| self = [super init];
|
| if (self) {
|
| @@ -379,12 +265,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
|
| return self;
|
| }
|
|
|
| -- (void)dealloc {
|
| - [package_ release];
|
| - [objcPrefix_ release];
|
| - [super dealloc];
|
| -}
|
| -
|
| @end
|
|
|
| @implementation GPBOneofDescriptor
|
| @@ -525,9 +405,6 @@ uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) {
|
| // Extra type specific data.
|
| if (isMessage) {
|
| const char *className = coreDesc->dataTypeSpecific.className;
|
| - // Note: Only fetch the class here, can't send messages to it because
|
| - // that could cause cycles back to this class within +initialize if
|
| - // two messages have each other in fields (i.e. - they build a graph).
|
| msgClass_ = objc_getClass(className);
|
| NSAssert(msgClass_, @"Class %s not defined", className);
|
| } else if (dataType == GPBDataTypeEnum) {
|
| @@ -868,22 +745,6 @@ uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) {
|
| return NO;
|
| }
|
|
|
| -- (BOOL)getValue:(int32_t *)outValue forEnumTextFormatName:(NSString *)textFormatName {
|
| - if (nameOffsets_ == NULL) [self calcValueNameOffsets];
|
| -
|
| - for (uint32_t i = 0; i < valueCount_; ++i) {
|
| - int32_t value = values_[i];
|
| - NSString *valueTextFormatName = [self textFormatNameForValue:value];
|
| - if ([valueTextFormatName isEqual:textFormatName]) {
|
| - if (outValue) {
|
| - *outValue = value;
|
| - }
|
| - return YES;
|
| - }
|
| - }
|
| - return NO;
|
| -}
|
| -
|
| - (NSString *)textFormatNameForValue:(int32_t)number {
|
| if (nameOffsets_ == NULL) [self calcValueNameOffsets];
|
|
|
| @@ -942,7 +803,7 @@ uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) {
|
| if ((self = [super init])) {
|
| description_ = description;
|
|
|
| -#if defined(DEBUG) && DEBUG
|
| +#if DEBUG
|
| const char *className = description->messageOrGroupClassName;
|
| if (className) {
|
| NSAssert(objc_lookUpClass(className) != Nil,
|
| @@ -1100,5 +961,3 @@ uint32_t GPBFieldAlternateTag(GPBFieldDescriptor *self) {
|
| }
|
|
|
| @end
|
| -
|
| -#pragma clang diagnostic pop
|
|
|