diff options
Diffstat (limited to 'objectivec/GPBArray.m')
-rw-r--r-- | objectivec/GPBArray.m | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/objectivec/GPBArray.m b/objectivec/GPBArray.m index 426c7cbd..64869bbb 100644 --- a/objectivec/GPBArray.m +++ b/objectivec/GPBArray.m @@ -32,6 +32,12 @@ #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" + // Mutable arrays use an internal buffer that can always hold a multiple of this elements. #define kChunkSize 16 #define CapacityFromCount(x) (((x / kChunkSize) + 1) * kChunkSize) @@ -158,15 +164,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { //% [super dealloc]; //%} //% -//%- (BOOL)isEqual:(GPB##NAME##Array *)other { +//%- (BOOL)isEqual:(id)other { //% if (self == other) { //% return YES; //% } //% if (![other isKindOfClass:[GPB##NAME##Array class]]) { //% return NO; //% } -//% return (_count == other->_count -//% && memcmp(_values, other->_values, (_count * sizeof(TYPE))) == 0); +//% GPB##NAME##Array *otherArray = other; +//% return (_count == otherArray->_count +//% && memcmp(_values, otherArray->_values, (_count * sizeof(TYPE))) == 0); //%} //% //%- (NSUInteger)hash { @@ -368,15 +375,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBInt32Array *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBInt32Array class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(int32_t))) == 0); + GPBInt32Array *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0); } - (NSUInteger)hash { @@ -615,15 +623,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBUInt32Array *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBUInt32Array class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(uint32_t))) == 0); + GPBUInt32Array *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(uint32_t))) == 0); } - (NSUInteger)hash { @@ -862,15 +871,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBInt64Array *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBInt64Array class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(int64_t))) == 0); + GPBInt64Array *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(int64_t))) == 0); } - (NSUInteger)hash { @@ -1109,15 +1119,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBUInt64Array *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBUInt64Array class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(uint64_t))) == 0); + GPBUInt64Array *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(uint64_t))) == 0); } - (NSUInteger)hash { @@ -1356,15 +1367,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBFloatArray *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBFloatArray class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(float))) == 0); + GPBFloatArray *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(float))) == 0); } - (NSUInteger)hash { @@ -1603,15 +1615,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBDoubleArray *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBDoubleArray class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(double))) == 0); + GPBDoubleArray *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(double))) == 0); } - (NSUInteger)hash { @@ -1850,15 +1863,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBBoolArray *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBBoolArray class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(BOOL))) == 0); + GPBBoolArray *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(BOOL))) == 0); } - (NSUInteger)hash { @@ -2121,15 +2135,16 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { [super dealloc]; } -- (BOOL)isEqual:(GPBEnumArray *)other { +- (BOOL)isEqual:(id)other { if (self == other) { return YES; } if (![other isKindOfClass:[GPBEnumArray class]]) { return NO; } - return (_count == other->_count - && memcmp(_values, other->_values, (_count * sizeof(int32_t))) == 0); + GPBEnumArray *otherArray = other; + return (_count == otherArray->_count + && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0); } - (NSUInteger)hash { @@ -2532,3 +2547,5 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) { } @end + +#pragma clang diagnostic pop |