Commit 5904279e authored by Thomas Van Lenten's avatar Thomas Van Lenten

Remove the custom key functions and just use the system provided defaults.

parent b5bbdb09
...@@ -36,39 +36,6 @@ ...@@ -36,39 +36,6 @@
#import "GPBUtilities.h" #import "GPBUtilities.h"
#import "GPBWireFormat.h" #import "GPBWireFormat.h"
#pragma mark CFDictionaryKeyCallBacks
// We use a custom dictionary here because our keys are numbers and
// conversion back and forth from NSNumber was costing us performance.
// If/when we move to C++ this could be done using a std::map and some
// careful retain/release calls.
static const void *GPBUnknownFieldSetKeyRetain(CFAllocatorRef allocator,
const void *value) {
#pragma unused(allocator)
return value;
}
static void GPBUnknownFieldSetKeyRelease(CFAllocatorRef allocator,
const void *value) {
#pragma unused(allocator)
#pragma unused(value)
}
static CFStringRef GPBUnknownFieldSetCopyKeyDescription(const void *value) {
return CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("%d"),
(int)value);
}
static Boolean GPBUnknownFieldSetKeyEqual(const void *value1,
const void *value2) {
return value1 == value2;
}
static CFHashCode GPBUnknownFieldSetKeyHash(const void *value) {
return (CFHashCode)value;
}
#pragma mark Helpers #pragma mark Helpers
static void checkNumber(int32_t number) { static void checkNumber(int32_t number) {
...@@ -291,13 +258,9 @@ static void GPBUnknownFieldSetSerializedSizeAsMessageSet(const void *key, ...@@ -291,13 +258,9 @@ static void GPBUnknownFieldSetSerializedSizeAsMessageSet(const void *key,
int32_t number = [field number]; int32_t number = [field number];
checkNumber(number); checkNumber(number);
if (!fields_) { if (!fields_) {
CFDictionaryKeyCallBacks keyCallBacks = { // Use a custom dictionary here because the keys are numbers and conversion
// See description above for reason for using custom dictionary. // back and forth from NSNumber isn't worth the cost.
0, GPBUnknownFieldSetKeyRetain, GPBUnknownFieldSetKeyRelease, fields_ = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL,
GPBUnknownFieldSetCopyKeyDescription, GPBUnknownFieldSetKeyEqual,
GPBUnknownFieldSetKeyHash,
};
fields_ = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &keyCallBacks,
&kCFTypeDictionaryValueCallBacks); &kCFTypeDictionaryValueCallBacks);
} }
ssize_t key = number; ssize_t key = number;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment