Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: third_party/protobuf/objectivec/GPBArray.m

Issue 2600753002: Reverts third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2015 Google Inc. All rights reserved. 2 // Copyright 2015 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 14 matching lines...) Expand all
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 30
31 #import "GPBArray_PackagePrivate.h" 31 #import "GPBArray_PackagePrivate.h"
32 32
33 #import "GPBMessage_PackagePrivate.h" 33 #import "GPBMessage_PackagePrivate.h"
34 34
35 // Direct access is use for speed, to avoid even internally declaring things
36 // read/write, etc. The warning is enabled in the project to ensure code calling
37 // protos can turn on -Wdirect-ivar-access without issues.
38 #pragma clang diagnostic push
39 #pragma clang diagnostic ignored "-Wdirect-ivar-access"
40
41 // Mutable arrays use an internal buffer that can always hold a multiple of this elements. 35 // Mutable arrays use an internal buffer that can always hold a multiple of this elements.
42 #define kChunkSize 16 36 #define kChunkSize 16
43 #define CapacityFromCount(x) (((x / kChunkSize) + 1) * kChunkSize) 37 #define CapacityFromCount(x) (((x / kChunkSize) + 1) * kChunkSize)
44 38
45 static BOOL ArrayDefault_IsValidValue(int32_t value) { 39 static BOOL ArrayDefault_IsValidValue(int32_t value) {
46 // Anything but the bad value marker is allowed. 40 // Anything but the bad value marker is allowed.
47 return (value != kGPBUnrecognizedEnumeratorValue); 41 return (value != kGPBUnrecognizedEnumeratorValue);
48 } 42 }
49 43
50 //%PDDM-DEFINE VALIDATE_RANGE(INDEX, COUNT) 44 //%PDDM-DEFINE VALIDATE_RANGE(INDEX, COUNT)
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 151
158 //%PDDM-DEFINE ARRAY_IMMUTABLE_CORE(NAME, TYPE, ACCESSOR_NAME, FORMAT) 152 //%PDDM-DEFINE ARRAY_IMMUTABLE_CORE(NAME, TYPE, ACCESSOR_NAME, FORMAT)
159 //%- (void)dealloc { 153 //%- (void)dealloc {
160 //% NSAssert(!_autocreator, 154 //% NSAssert(!_autocreator,
161 //% @"%@: Autocreator must be cleared before release, autocreator: %@" , 155 //% @"%@: Autocreator must be cleared before release, autocreator: %@" ,
162 //% [self class], _autocreator); 156 //% [self class], _autocreator);
163 //% free(_values); 157 //% free(_values);
164 //% [super dealloc]; 158 //% [super dealloc];
165 //%} 159 //%}
166 //% 160 //%
167 //%- (BOOL)isEqual:(id)other { 161 //%- (BOOL)isEqual:(GPB##NAME##Array *)other {
168 //% if (self == other) { 162 //% if (self == other) {
169 //% return YES; 163 //% return YES;
170 //% } 164 //% }
171 //% if (![other isKindOfClass:[GPB##NAME##Array class]]) { 165 //% if (![other isKindOfClass:[GPB##NAME##Array class]]) {
172 //% return NO; 166 //% return NO;
173 //% } 167 //% }
174 //% GPB##NAME##Array *otherArray = other; 168 //% return (_count == other->_count
175 //% return (_count == otherArray->_count 169 //% && memcmp(_values, other->_values, (_count * sizeof(TYPE))) == 0);
176 //% && memcmp(_values, otherArray->_values, (_count * sizeof(TYPE))) == 0);
177 //%} 170 //%}
178 //% 171 //%
179 //%- (NSUInteger)hash { 172 //%- (NSUInteger)hash {
180 //% // Follow NSArray's lead, and use the count as the hash. 173 //% // Follow NSArray's lead, and use the count as the hash.
181 //% return _count; 174 //% return _count;
182 //%} 175 //%}
183 //% 176 //%
184 //%- (NSString *)description { 177 //%- (NSString *)description {
185 //% NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self]; 178 //% NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [self class], self];
186 //% for (NSUInteger i = 0, count = _count; i < count; ++i) { 179 //% for (NSUInteger i = 0, count = _count; i < count; ++i) {
187 //% if (i == 0) { 180 //% if (i == 0) {
188 //% [result appendFormat:@"##FORMAT##", _values[i]]; 181 //% [result appendFormat:@"##FORMAT##", _values[i]];
189 //% } else { 182 //% } else {
190 //% [result appendFormat:@", ##FORMAT##", _values[i]]; 183 //% [result appendFormat:@", ##FORMAT##", _values[i]];
191 //% } 184 //% }
192 //% } 185 //% }
193 //% [result appendFormat:@" }"]; 186 //% [result appendFormat:@" }"];
194 //% return result; 187 //% return result;
195 //%} 188 //%}
196 //% 189 //%
197 //%- (void)enumerate##ACCESSOR_NAME##ValuesWithBlock:(void (^)(TYPE value, NSUIn teger idx, BOOL *stop))block { 190 //%- (void)enumerate##ACCESSOR_NAME##ValuesWithBlock:(void (^)(TYPE value, NSUIn teger idx, BOOL *stop))block {
198 //% [self enumerate##ACCESSOR_NAME##ValuesWithOptions:(NSEnumerationOptions)0 u singBlock:block]; 191 //% [self enumerate##ACCESSOR_NAME##ValuesWithOptions:0 usingBlock:block];
199 //%} 192 //%}
200 //% 193 //%
201 //%- (void)enumerate##ACCESSOR_NAME##ValuesWithOptions:(NSEnumerationOptions)opt s 194 //%- (void)enumerate##ACCESSOR_NAME##ValuesWithOptions:(NSEnumerationOptions)opt s
202 //% ACCESSOR_NAME$S usingBlock:(void (^)(TYPE value, NSUIn teger idx, BOOL *stop))block { 195 //% ACCESSOR_NAME$S usingBlock:(void (^)(TYPE value, NSUIn teger idx, BOOL *stop))block {
203 //% // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok). 196 //% // NSEnumerationConcurrent isn't currently supported (and Apple's docs say that is ok).
204 //% BOOL stop = NO; 197 //% BOOL stop = NO;
205 //% if ((opts & NSEnumerationReverse) == 0) { 198 //% if ((opts & NSEnumerationReverse) == 0) {
206 //% for (NSUInteger i = 0, count = _count; i < count; ++i) { 199 //% for (NSUInteger i = 0, count = _count; i < count; ++i) {
207 //% block(_values[i], i, &stop); 200 //% block(_values[i], i, &stop);
208 //% if (stop) break; 201 //% if (stop) break;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 } 361 }
369 362
370 - (void)dealloc { 363 - (void)dealloc {
371 NSAssert(!_autocreator, 364 NSAssert(!_autocreator,
372 @"%@: Autocreator must be cleared before release, autocreator: %@", 365 @"%@: Autocreator must be cleared before release, autocreator: %@",
373 [self class], _autocreator); 366 [self class], _autocreator);
374 free(_values); 367 free(_values);
375 [super dealloc]; 368 [super dealloc];
376 } 369 }
377 370
378 - (BOOL)isEqual:(id)other { 371 - (BOOL)isEqual:(GPBInt32Array *)other {
379 if (self == other) { 372 if (self == other) {
380 return YES; 373 return YES;
381 } 374 }
382 if (![other isKindOfClass:[GPBInt32Array class]]) { 375 if (![other isKindOfClass:[GPBInt32Array class]]) {
383 return NO; 376 return NO;
384 } 377 }
385 GPBInt32Array *otherArray = other; 378 return (_count == other->_count
386 return (_count == otherArray->_count 379 && memcmp(_values, other->_values, (_count * sizeof(int32_t))) == 0);
387 && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0);
388 } 380 }
389 381
390 - (NSUInteger)hash { 382 - (NSUInteger)hash {
391 // Follow NSArray's lead, and use the count as the hash. 383 // Follow NSArray's lead, and use the count as the hash.
392 return _count; 384 return _count;
393 } 385 }
394 386
395 - (NSString *)description { 387 - (NSString *)description {
396 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 388 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
397 for (NSUInteger i = 0, count = _count; i < count; ++i) { 389 for (NSUInteger i = 0, count = _count; i < count; ++i) {
398 if (i == 0) { 390 if (i == 0) {
399 [result appendFormat:@"%d", _values[i]]; 391 [result appendFormat:@"%d", _values[i]];
400 } else { 392 } else {
401 [result appendFormat:@", %d", _values[i]]; 393 [result appendFormat:@", %d", _values[i]];
402 } 394 }
403 } 395 }
404 [result appendFormat:@" }"]; 396 [result appendFormat:@" }"];
405 return result; 397 return result;
406 } 398 }
407 399
408 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL * stop))block { 400 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL * stop))block {
409 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 401 [self enumerateValuesWithOptions:0 usingBlock:block];
410 } 402 }
411 403
412 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 404 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
413 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block { 405 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
414 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 406 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
415 BOOL stop = NO; 407 BOOL stop = NO;
416 if ((opts & NSEnumerationReverse) == 0) { 408 if ((opts & NSEnumerationReverse) == 0) {
417 for (NSUInteger i = 0, count = _count; i < count; ++i) { 409 for (NSUInteger i = 0, count = _count; i < count; ++i) {
418 block(_values[i], i, &stop); 410 block(_values[i], i, &stop);
419 if (stop) break; 411 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 } 608 }
617 609
618 - (void)dealloc { 610 - (void)dealloc {
619 NSAssert(!_autocreator, 611 NSAssert(!_autocreator,
620 @"%@: Autocreator must be cleared before release, autocreator: %@", 612 @"%@: Autocreator must be cleared before release, autocreator: %@",
621 [self class], _autocreator); 613 [self class], _autocreator);
622 free(_values); 614 free(_values);
623 [super dealloc]; 615 [super dealloc];
624 } 616 }
625 617
626 - (BOOL)isEqual:(id)other { 618 - (BOOL)isEqual:(GPBUInt32Array *)other {
627 if (self == other) { 619 if (self == other) {
628 return YES; 620 return YES;
629 } 621 }
630 if (![other isKindOfClass:[GPBUInt32Array class]]) { 622 if (![other isKindOfClass:[GPBUInt32Array class]]) {
631 return NO; 623 return NO;
632 } 624 }
633 GPBUInt32Array *otherArray = other; 625 return (_count == other->_count
634 return (_count == otherArray->_count 626 && memcmp(_values, other->_values, (_count * sizeof(uint32_t))) == 0);
635 && memcmp(_values, otherArray->_values, (_count * sizeof(uint32_t))) = = 0);
636 } 627 }
637 628
638 - (NSUInteger)hash { 629 - (NSUInteger)hash {
639 // Follow NSArray's lead, and use the count as the hash. 630 // Follow NSArray's lead, and use the count as the hash.
640 return _count; 631 return _count;
641 } 632 }
642 633
643 - (NSString *)description { 634 - (NSString *)description {
644 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 635 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
645 for (NSUInteger i = 0, count = _count; i < count; ++i) { 636 for (NSUInteger i = 0, count = _count; i < count; ++i) {
646 if (i == 0) { 637 if (i == 0) {
647 [result appendFormat:@"%u", _values[i]]; 638 [result appendFormat:@"%u", _values[i]];
648 } else { 639 } else {
649 [result appendFormat:@", %u", _values[i]]; 640 [result appendFormat:@", %u", _values[i]];
650 } 641 }
651 } 642 }
652 [result appendFormat:@" }"]; 643 [result appendFormat:@" }"];
653 return result; 644 return result;
654 } 645 }
655 646
656 - (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block { 647 - (void)enumerateValuesWithBlock:(void (^)(uint32_t value, NSUInteger idx, BOOL *stop))block {
657 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 648 [self enumerateValuesWithOptions:0 usingBlock:block];
658 } 649 }
659 650
660 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 651 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
661 usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOO L *stop))block { 652 usingBlock:(void (^)(uint32_t value, NSUInteger idx, BOO L *stop))block {
662 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 653 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
663 BOOL stop = NO; 654 BOOL stop = NO;
664 if ((opts & NSEnumerationReverse) == 0) { 655 if ((opts & NSEnumerationReverse) == 0) {
665 for (NSUInteger i = 0, count = _count; i < count; ++i) { 656 for (NSUInteger i = 0, count = _count; i < count; ++i) {
666 block(_values[i], i, &stop); 657 block(_values[i], i, &stop);
667 if (stop) break; 658 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 } 855 }
865 856
866 - (void)dealloc { 857 - (void)dealloc {
867 NSAssert(!_autocreator, 858 NSAssert(!_autocreator,
868 @"%@: Autocreator must be cleared before release, autocreator: %@", 859 @"%@: Autocreator must be cleared before release, autocreator: %@",
869 [self class], _autocreator); 860 [self class], _autocreator);
870 free(_values); 861 free(_values);
871 [super dealloc]; 862 [super dealloc];
872 } 863 }
873 864
874 - (BOOL)isEqual:(id)other { 865 - (BOOL)isEqual:(GPBInt64Array *)other {
875 if (self == other) { 866 if (self == other) {
876 return YES; 867 return YES;
877 } 868 }
878 if (![other isKindOfClass:[GPBInt64Array class]]) { 869 if (![other isKindOfClass:[GPBInt64Array class]]) {
879 return NO; 870 return NO;
880 } 871 }
881 GPBInt64Array *otherArray = other; 872 return (_count == other->_count
882 return (_count == otherArray->_count 873 && memcmp(_values, other->_values, (_count * sizeof(int64_t))) == 0);
883 && memcmp(_values, otherArray->_values, (_count * sizeof(int64_t))) == 0);
884 } 874 }
885 875
886 - (NSUInteger)hash { 876 - (NSUInteger)hash {
887 // Follow NSArray's lead, and use the count as the hash. 877 // Follow NSArray's lead, and use the count as the hash.
888 return _count; 878 return _count;
889 } 879 }
890 880
891 - (NSString *)description { 881 - (NSString *)description {
892 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 882 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
893 for (NSUInteger i = 0, count = _count; i < count; ++i) { 883 for (NSUInteger i = 0, count = _count; i < count; ++i) {
894 if (i == 0) { 884 if (i == 0) {
895 [result appendFormat:@"%lld", _values[i]]; 885 [result appendFormat:@"%lld", _values[i]];
896 } else { 886 } else {
897 [result appendFormat:@", %lld", _values[i]]; 887 [result appendFormat:@", %lld", _values[i]];
898 } 888 }
899 } 889 }
900 [result appendFormat:@" }"]; 890 [result appendFormat:@" }"];
901 return result; 891 return result;
902 } 892 }
903 893
904 - (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL * stop))block { 894 - (void)enumerateValuesWithBlock:(void (^)(int64_t value, NSUInteger idx, BOOL * stop))block {
905 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 895 [self enumerateValuesWithOptions:0 usingBlock:block];
906 } 896 }
907 897
908 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 898 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
909 usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block { 899 usingBlock:(void (^)(int64_t value, NSUInteger idx, BOOL *stop))block {
910 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 900 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
911 BOOL stop = NO; 901 BOOL stop = NO;
912 if ((opts & NSEnumerationReverse) == 0) { 902 if ((opts & NSEnumerationReverse) == 0) {
913 for (NSUInteger i = 0, count = _count; i < count; ++i) { 903 for (NSUInteger i = 0, count = _count; i < count; ++i) {
914 block(_values[i], i, &stop); 904 block(_values[i], i, &stop);
915 if (stop) break; 905 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 } 1102 }
1113 1103
1114 - (void)dealloc { 1104 - (void)dealloc {
1115 NSAssert(!_autocreator, 1105 NSAssert(!_autocreator,
1116 @"%@: Autocreator must be cleared before release, autocreator: %@", 1106 @"%@: Autocreator must be cleared before release, autocreator: %@",
1117 [self class], _autocreator); 1107 [self class], _autocreator);
1118 free(_values); 1108 free(_values);
1119 [super dealloc]; 1109 [super dealloc];
1120 } 1110 }
1121 1111
1122 - (BOOL)isEqual:(id)other { 1112 - (BOOL)isEqual:(GPBUInt64Array *)other {
1123 if (self == other) { 1113 if (self == other) {
1124 return YES; 1114 return YES;
1125 } 1115 }
1126 if (![other isKindOfClass:[GPBUInt64Array class]]) { 1116 if (![other isKindOfClass:[GPBUInt64Array class]]) {
1127 return NO; 1117 return NO;
1128 } 1118 }
1129 GPBUInt64Array *otherArray = other; 1119 return (_count == other->_count
1130 return (_count == otherArray->_count 1120 && memcmp(_values, other->_values, (_count * sizeof(uint64_t))) == 0);
1131 && memcmp(_values, otherArray->_values, (_count * sizeof(uint64_t))) = = 0);
1132 } 1121 }
1133 1122
1134 - (NSUInteger)hash { 1123 - (NSUInteger)hash {
1135 // Follow NSArray's lead, and use the count as the hash. 1124 // Follow NSArray's lead, and use the count as the hash.
1136 return _count; 1125 return _count;
1137 } 1126 }
1138 1127
1139 - (NSString *)description { 1128 - (NSString *)description {
1140 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 1129 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
1141 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1130 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1142 if (i == 0) { 1131 if (i == 0) {
1143 [result appendFormat:@"%llu", _values[i]]; 1132 [result appendFormat:@"%llu", _values[i]];
1144 } else { 1133 } else {
1145 [result appendFormat:@", %llu", _values[i]]; 1134 [result appendFormat:@", %llu", _values[i]];
1146 } 1135 }
1147 } 1136 }
1148 [result appendFormat:@" }"]; 1137 [result appendFormat:@" }"];
1149 return result; 1138 return result;
1150 } 1139 }
1151 1140
1152 - (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block { 1141 - (void)enumerateValuesWithBlock:(void (^)(uint64_t value, NSUInteger idx, BOOL *stop))block {
1153 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 1142 [self enumerateValuesWithOptions:0 usingBlock:block];
1154 } 1143 }
1155 1144
1156 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 1145 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
1157 usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOO L *stop))block { 1146 usingBlock:(void (^)(uint64_t value, NSUInteger idx, BOO L *stop))block {
1158 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 1147 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
1159 BOOL stop = NO; 1148 BOOL stop = NO;
1160 if ((opts & NSEnumerationReverse) == 0) { 1149 if ((opts & NSEnumerationReverse) == 0) {
1161 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1150 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1162 block(_values[i], i, &stop); 1151 block(_values[i], i, &stop);
1163 if (stop) break; 1152 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 } 1349 }
1361 1350
1362 - (void)dealloc { 1351 - (void)dealloc {
1363 NSAssert(!_autocreator, 1352 NSAssert(!_autocreator,
1364 @"%@: Autocreator must be cleared before release, autocreator: %@", 1353 @"%@: Autocreator must be cleared before release, autocreator: %@",
1365 [self class], _autocreator); 1354 [self class], _autocreator);
1366 free(_values); 1355 free(_values);
1367 [super dealloc]; 1356 [super dealloc];
1368 } 1357 }
1369 1358
1370 - (BOOL)isEqual:(id)other { 1359 - (BOOL)isEqual:(GPBFloatArray *)other {
1371 if (self == other) { 1360 if (self == other) {
1372 return YES; 1361 return YES;
1373 } 1362 }
1374 if (![other isKindOfClass:[GPBFloatArray class]]) { 1363 if (![other isKindOfClass:[GPBFloatArray class]]) {
1375 return NO; 1364 return NO;
1376 } 1365 }
1377 GPBFloatArray *otherArray = other; 1366 return (_count == other->_count
1378 return (_count == otherArray->_count 1367 && memcmp(_values, other->_values, (_count * sizeof(float))) == 0);
1379 && memcmp(_values, otherArray->_values, (_count * sizeof(float))) == 0 );
1380 } 1368 }
1381 1369
1382 - (NSUInteger)hash { 1370 - (NSUInteger)hash {
1383 // Follow NSArray's lead, and use the count as the hash. 1371 // Follow NSArray's lead, and use the count as the hash.
1384 return _count; 1372 return _count;
1385 } 1373 }
1386 1374
1387 - (NSString *)description { 1375 - (NSString *)description {
1388 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 1376 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
1389 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1377 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1390 if (i == 0) { 1378 if (i == 0) {
1391 [result appendFormat:@"%f", _values[i]]; 1379 [result appendFormat:@"%f", _values[i]];
1392 } else { 1380 } else {
1393 [result appendFormat:@", %f", _values[i]]; 1381 [result appendFormat:@", %f", _values[i]];
1394 } 1382 }
1395 } 1383 }
1396 [result appendFormat:@" }"]; 1384 [result appendFormat:@" }"];
1397 return result; 1385 return result;
1398 } 1386 }
1399 1387
1400 - (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *st op))block { 1388 - (void)enumerateValuesWithBlock:(void (^)(float value, NSUInteger idx, BOOL *st op))block {
1401 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 1389 [self enumerateValuesWithOptions:0 usingBlock:block];
1402 } 1390 }
1403 1391
1404 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 1392 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
1405 usingBlock:(void (^)(float value, NSUInteger idx, BOOL * stop))block { 1393 usingBlock:(void (^)(float value, NSUInteger idx, BOOL * stop))block {
1406 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 1394 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
1407 BOOL stop = NO; 1395 BOOL stop = NO;
1408 if ((opts & NSEnumerationReverse) == 0) { 1396 if ((opts & NSEnumerationReverse) == 0) {
1409 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1397 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1410 block(_values[i], i, &stop); 1398 block(_values[i], i, &stop);
1411 if (stop) break; 1399 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1608 } 1596 }
1609 1597
1610 - (void)dealloc { 1598 - (void)dealloc {
1611 NSAssert(!_autocreator, 1599 NSAssert(!_autocreator,
1612 @"%@: Autocreator must be cleared before release, autocreator: %@", 1600 @"%@: Autocreator must be cleared before release, autocreator: %@",
1613 [self class], _autocreator); 1601 [self class], _autocreator);
1614 free(_values); 1602 free(_values);
1615 [super dealloc]; 1603 [super dealloc];
1616 } 1604 }
1617 1605
1618 - (BOOL)isEqual:(id)other { 1606 - (BOOL)isEqual:(GPBDoubleArray *)other {
1619 if (self == other) { 1607 if (self == other) {
1620 return YES; 1608 return YES;
1621 } 1609 }
1622 if (![other isKindOfClass:[GPBDoubleArray class]]) { 1610 if (![other isKindOfClass:[GPBDoubleArray class]]) {
1623 return NO; 1611 return NO;
1624 } 1612 }
1625 GPBDoubleArray *otherArray = other; 1613 return (_count == other->_count
1626 return (_count == otherArray->_count 1614 && memcmp(_values, other->_values, (_count * sizeof(double))) == 0);
1627 && memcmp(_values, otherArray->_values, (_count * sizeof(double))) == 0);
1628 } 1615 }
1629 1616
1630 - (NSUInteger)hash { 1617 - (NSUInteger)hash {
1631 // Follow NSArray's lead, and use the count as the hash. 1618 // Follow NSArray's lead, and use the count as the hash.
1632 return _count; 1619 return _count;
1633 } 1620 }
1634 1621
1635 - (NSString *)description { 1622 - (NSString *)description {
1636 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 1623 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
1637 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1624 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1638 if (i == 0) { 1625 if (i == 0) {
1639 [result appendFormat:@"%lf", _values[i]]; 1626 [result appendFormat:@"%lf", _values[i]];
1640 } else { 1627 } else {
1641 [result appendFormat:@", %lf", _values[i]]; 1628 [result appendFormat:@", %lf", _values[i]];
1642 } 1629 }
1643 } 1630 }
1644 [result appendFormat:@" }"]; 1631 [result appendFormat:@" }"];
1645 return result; 1632 return result;
1646 } 1633 }
1647 1634
1648 - (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *s top))block { 1635 - (void)enumerateValuesWithBlock:(void (^)(double value, NSUInteger idx, BOOL *s top))block {
1649 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 1636 [self enumerateValuesWithOptions:0 usingBlock:block];
1650 } 1637 }
1651 1638
1652 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 1639 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
1653 usingBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block { 1640 usingBlock:(void (^)(double value, NSUInteger idx, BOOL *stop))block {
1654 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 1641 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
1655 BOOL stop = NO; 1642 BOOL stop = NO;
1656 if ((opts & NSEnumerationReverse) == 0) { 1643 if ((opts & NSEnumerationReverse) == 0) {
1657 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1644 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1658 block(_values[i], i, &stop); 1645 block(_values[i], i, &stop);
1659 if (stop) break; 1646 if (stop) break;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1856 } 1843 }
1857 1844
1858 - (void)dealloc { 1845 - (void)dealloc {
1859 NSAssert(!_autocreator, 1846 NSAssert(!_autocreator,
1860 @"%@: Autocreator must be cleared before release, autocreator: %@", 1847 @"%@: Autocreator must be cleared before release, autocreator: %@",
1861 [self class], _autocreator); 1848 [self class], _autocreator);
1862 free(_values); 1849 free(_values);
1863 [super dealloc]; 1850 [super dealloc];
1864 } 1851 }
1865 1852
1866 - (BOOL)isEqual:(id)other { 1853 - (BOOL)isEqual:(GPBBoolArray *)other {
1867 if (self == other) { 1854 if (self == other) {
1868 return YES; 1855 return YES;
1869 } 1856 }
1870 if (![other isKindOfClass:[GPBBoolArray class]]) { 1857 if (![other isKindOfClass:[GPBBoolArray class]]) {
1871 return NO; 1858 return NO;
1872 } 1859 }
1873 GPBBoolArray *otherArray = other; 1860 return (_count == other->_count
1874 return (_count == otherArray->_count 1861 && memcmp(_values, other->_values, (_count * sizeof(BOOL))) == 0);
1875 && memcmp(_values, otherArray->_values, (_count * sizeof(BOOL))) == 0) ;
1876 } 1862 }
1877 1863
1878 - (NSUInteger)hash { 1864 - (NSUInteger)hash {
1879 // Follow NSArray's lead, and use the count as the hash. 1865 // Follow NSArray's lead, and use the count as the hash.
1880 return _count; 1866 return _count;
1881 } 1867 }
1882 1868
1883 - (NSString *)description { 1869 - (NSString *)description {
1884 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 1870 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
1885 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1871 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1886 if (i == 0) { 1872 if (i == 0) {
1887 [result appendFormat:@"%d", _values[i]]; 1873 [result appendFormat:@"%d", _values[i]];
1888 } else { 1874 } else {
1889 [result appendFormat:@", %d", _values[i]]; 1875 [result appendFormat:@", %d", _values[i]];
1890 } 1876 }
1891 } 1877 }
1892 [result appendFormat:@" }"]; 1878 [result appendFormat:@" }"];
1893 return result; 1879 return result;
1894 } 1880 }
1895 1881
1896 - (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *sto p))block { 1882 - (void)enumerateValuesWithBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *sto p))block {
1897 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 1883 [self enumerateValuesWithOptions:0 usingBlock:block];
1898 } 1884 }
1899 1885
1900 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 1886 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
1901 usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *s top))block { 1887 usingBlock:(void (^)(BOOL value, NSUInteger idx, BOOL *s top))block {
1902 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 1888 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
1903 BOOL stop = NO; 1889 BOOL stop = NO;
1904 if ((opts & NSEnumerationReverse) == 0) { 1890 if ((opts & NSEnumerationReverse) == 0) {
1905 for (NSUInteger i = 0, count = _count; i < count; ++i) { 1891 for (NSUInteger i = 0, count = _count; i < count; ++i) {
1906 block(_values[i], i, &stop); 1892 block(_values[i], i, &stop);
1907 if (stop) break; 1893 if (stop) break;
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
2128 // This block of code is generated, do not edit it directly. 2114 // This block of code is generated, do not edit it directly.
2129 2115
2130 - (void)dealloc { 2116 - (void)dealloc {
2131 NSAssert(!_autocreator, 2117 NSAssert(!_autocreator,
2132 @"%@: Autocreator must be cleared before release, autocreator: %@", 2118 @"%@: Autocreator must be cleared before release, autocreator: %@",
2133 [self class], _autocreator); 2119 [self class], _autocreator);
2134 free(_values); 2120 free(_values);
2135 [super dealloc]; 2121 [super dealloc];
2136 } 2122 }
2137 2123
2138 - (BOOL)isEqual:(id)other { 2124 - (BOOL)isEqual:(GPBEnumArray *)other {
2139 if (self == other) { 2125 if (self == other) {
2140 return YES; 2126 return YES;
2141 } 2127 }
2142 if (![other isKindOfClass:[GPBEnumArray class]]) { 2128 if (![other isKindOfClass:[GPBEnumArray class]]) {
2143 return NO; 2129 return NO;
2144 } 2130 }
2145 GPBEnumArray *otherArray = other; 2131 return (_count == other->_count
2146 return (_count == otherArray->_count 2132 && memcmp(_values, other->_values, (_count * sizeof(int32_t))) == 0);
2147 && memcmp(_values, otherArray->_values, (_count * sizeof(int32_t))) == 0);
2148 } 2133 }
2149 2134
2150 - (NSUInteger)hash { 2135 - (NSUInteger)hash {
2151 // Follow NSArray's lead, and use the count as the hash. 2136 // Follow NSArray's lead, and use the count as the hash.
2152 return _count; 2137 return _count;
2153 } 2138 }
2154 2139
2155 - (NSString *)description { 2140 - (NSString *)description {
2156 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self]; 2141 NSMutableString *result = [NSMutableString stringWithFormat:@"<%@ %p> { ", [se lf class], self];
2157 for (NSUInteger i = 0, count = _count; i < count; ++i) { 2142 for (NSUInteger i = 0, count = _count; i < count; ++i) {
2158 if (i == 0) { 2143 if (i == 0) {
2159 [result appendFormat:@"%d", _values[i]]; 2144 [result appendFormat:@"%d", _values[i]];
2160 } else { 2145 } else {
2161 [result appendFormat:@", %d", _values[i]]; 2146 [result appendFormat:@", %d", _values[i]];
2162 } 2147 }
2163 } 2148 }
2164 [result appendFormat:@" }"]; 2149 [result appendFormat:@" }"];
2165 return result; 2150 return result;
2166 } 2151 }
2167 2152
2168 - (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOO L *stop))block { 2153 - (void)enumerateRawValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOO L *stop))block {
2169 [self enumerateRawValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 2154 [self enumerateRawValuesWithOptions:0 usingBlock:block];
2170 } 2155 }
2171 2156
2172 - (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts 2157 - (void)enumerateRawValuesWithOptions:(NSEnumerationOptions)opts
2173 usingBlock:(void (^)(int32_t value, NSUInteger idx, B OOL *stop))block { 2158 usingBlock:(void (^)(int32_t value, NSUInteger idx, B OOL *stop))block {
2174 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 2159 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
2175 BOOL stop = NO; 2160 BOOL stop = NO;
2176 if ((opts & NSEnumerationReverse) == 0) { 2161 if ((opts & NSEnumerationReverse) == 0) {
2177 for (NSUInteger i = 0, count = _count; i < count; ++i) { 2162 for (NSUInteger i = 0, count = _count; i < count; ++i) {
2178 block(_values[i], i, &stop); 2163 block(_values[i], i, &stop);
2179 if (stop) break; 2164 if (stop) break;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2211 if (index >= _count) { 2196 if (index >= _count) {
2212 [NSException raise:NSRangeException 2197 [NSException raise:NSRangeException
2213 format:@"Index (%lu) beyond bounds (%lu)", 2198 format:@"Index (%lu) beyond bounds (%lu)",
2214 (unsigned long)index, (unsigned long)_count]; 2199 (unsigned long)index, (unsigned long)_count];
2215 } 2200 }
2216 //%PDDM-EXPAND-END VALIDATE_RANGE(index, _count) 2201 //%PDDM-EXPAND-END VALIDATE_RANGE(index, _count)
2217 return _values[index]; 2202 return _values[index];
2218 } 2203 }
2219 2204
2220 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL * stop))block { 2205 - (void)enumerateValuesWithBlock:(void (^)(int32_t value, NSUInteger idx, BOOL * stop))block {
2221 [self enumerateValuesWithOptions:(NSEnumerationOptions)0 usingBlock:block]; 2206 [self enumerateValuesWithOptions:0 usingBlock:block];
2222 } 2207 }
2223 2208
2224 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts 2209 - (void)enumerateValuesWithOptions:(NSEnumerationOptions)opts
2225 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block { 2210 usingBlock:(void (^)(int32_t value, NSUInteger idx, BOOL *stop))block {
2226 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok). 2211 // NSEnumerationConcurrent isn't currently supported (and Apple's docs say tha t is ok).
2227 BOOL stop = NO; 2212 BOOL stop = NO;
2228 GPBEnumValidationFunc func = _validationFunc; 2213 GPBEnumValidationFunc func = _validationFunc;
2229 if ((opts & NSEnumerationReverse) == 0) { 2214 if ((opts & NSEnumerationReverse) == 0) {
2230 int32_t *scan = _values; 2215 int32_t *scan = _values;
2231 int32_t *end = scan + _count; 2216 int32_t *end = scan + _count;
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
2540 - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop) )block { 2525 - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop) )block {
2541 [_array enumerateObjectsUsingBlock:block]; 2526 [_array enumerateObjectsUsingBlock:block];
2542 } 2527 }
2543 2528
2544 - (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts 2529 - (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts
2545 usingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop ))block { 2530 usingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop ))block {
2546 [_array enumerateObjectsWithOptions:opts usingBlock:block]; 2531 [_array enumerateObjectsWithOptions:opts usingBlock:block];
2547 } 2532 }
2548 2533
2549 @end 2534 @end
2550
2551 #pragma clang diagnostic pop
OLDNEW
« no previous file with comments | « third_party/protobuf/objectivec/GPBArray.h ('k') | third_party/protobuf/objectivec/GPBBootstrap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698