aboutsummaryrefslogtreecommitdiff
path: root/objectivec/GPBArray.m
diff options
context:
space:
mode:
authorThomas Van Lenten <thomasvl@google.com>2016-05-27 12:51:18 -0400
committerThomas Van Lenten <thomasvl@google.com>2016-05-27 12:52:35 -0400
commit38b9e74691b484d2521fc6d8f421fc3dc14aa143 (patch)
tree86d27bd76f0ce069e207194676619fbf700f69bf /objectivec/GPBArray.m
parent0f27cab4fb378b94a91c2b1522174ec21719df9d (diff)
downloadprotobuf-38b9e74691b484d2521fc6d8f421fc3dc14aa143.tar.gz
protobuf-38b9e74691b484d2521fc6d8f421fc3dc14aa143.tar.bz2
protobuf-38b9e74691b484d2521fc6d8f421fc3dc14aa143.zip
Add -Woverriding-method-mismatch.
Fixes up the code to avoid some issues with isEqual: methods. Opened https://github.com/google/protobuf/issues/1616 to track the KVC collision.
Diffstat (limited to 'objectivec/GPBArray.m')
-rw-r--r--objectivec/GPBArray.m63
1 files changed, 36 insertions, 27 deletions
diff --git a/objectivec/GPBArray.m b/objectivec/GPBArray.m
index dce45b6e..64869bbb 100644
--- a/objectivec/GPBArray.m
+++ b/objectivec/GPBArray.m
@@ -164,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 {
@@ -374,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 {
@@ -621,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 {
@@ -868,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 {
@@ -1115,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 {
@@ -1362,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 {
@@ -1609,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 {
@@ -1856,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 {
@@ -2127,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 {