diff options
author | Jonathan Dierksen <jedierksen@gmail.com> | 2018-01-22 13:26:39 -0800 |
---|---|---|
committer | Thomas Van Lenten <thomasvl@google.com> | 2018-01-22 16:26:39 -0500 |
commit | a721bf6d294915b412e4ba6b5d92a9b84c6bfef9 (patch) | |
tree | e2650a8219b383a4e622df32a6294b3418a00594 /objectivec/google | |
parent | 47b7d2c7cadf74ceec90fc5042232819cd0dd557 (diff) |
Migrate away from deprecated OSAtomic APIs. (#4184)
* Migrate away from deprecated OSAtomic APIs.
Diffstat (limited to 'objectivec/google')
-rw-r--r-- | objectivec/google/protobuf/Struct.pbobjc.m | 5 | ||||
-rw-r--r-- | objectivec/google/protobuf/Type.pbobjc.m | 15 |
2 files changed, 12 insertions, 8 deletions
diff --git a/objectivec/google/protobuf/Struct.pbobjc.m b/objectivec/google/protobuf/Struct.pbobjc.m index f36ec582..dff2f844 100644 --- a/objectivec/google/protobuf/Struct.pbobjc.m +++ b/objectivec/google/protobuf/Struct.pbobjc.m @@ -51,7 +51,7 @@ static GPBFileDescriptor *GPBStructRoot_FileDescriptor(void) { #pragma mark - Enum GPBNullValue GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void) { - static GPBEnumDescriptor *descriptor = NULL; + static _Atomic(GPBEnumDescriptor*) descriptor = NULL; if (!descriptor) { static const char *valueNames = "NullValue\000"; @@ -64,7 +64,8 @@ GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void) { values:values count:(uint32_t)(sizeof(values) / sizeof(int32_t)) enumVerifier:GPBNullValue_IsValidValue]; - if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) { + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { [worker release]; } } diff --git a/objectivec/google/protobuf/Type.pbobjc.m b/objectivec/google/protobuf/Type.pbobjc.m index 7a949388..06795308 100644 --- a/objectivec/google/protobuf/Type.pbobjc.m +++ b/objectivec/google/protobuf/Type.pbobjc.m @@ -54,7 +54,7 @@ static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) { #pragma mark - Enum GPBSyntax GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void) { - static GPBEnumDescriptor *descriptor = NULL; + static _Atomic(GPBEnumDescriptor*) descriptor = NULL; if (!descriptor) { static const char *valueNames = "SyntaxProto2\000SyntaxProto3\000"; @@ -68,7 +68,8 @@ GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void) { values:values count:(uint32_t)(sizeof(values) / sizeof(int32_t)) enumVerifier:GPBSyntax_IsValidValue]; - if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) { + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { [worker release]; } } @@ -368,7 +369,7 @@ void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) { #pragma mark - Enum GPBField_Kind GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) { - static GPBEnumDescriptor *descriptor = NULL; + static _Atomic(GPBEnumDescriptor*) descriptor = NULL; if (!descriptor) { static const char *valueNames = "TypeUnknown\000TypeDouble\000TypeFloat\000TypeInt" @@ -404,7 +405,8 @@ GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) { values:values count:(uint32_t)(sizeof(values) / sizeof(int32_t)) enumVerifier:GPBField_Kind_IsValidValue]; - if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) { + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { [worker release]; } } @@ -441,7 +443,7 @@ BOOL GPBField_Kind_IsValidValue(int32_t value__) { #pragma mark - Enum GPBField_Cardinality GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) { - static GPBEnumDescriptor *descriptor = NULL; + static _Atomic(GPBEnumDescriptor*) descriptor = NULL; if (!descriptor) { static const char *valueNames = "CardinalityUnknown\000CardinalityOptional\000C" @@ -458,7 +460,8 @@ GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) { values:values count:(uint32_t)(sizeof(values) / sizeof(int32_t)) enumVerifier:GPBField_Cardinality_IsValidValue]; - if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) { + GPBEnumDescriptor *expected = nil; + if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) { [worker release]; } } |