You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by be...@apache.org on 2013/01/25 17:59:41 UTC
ios commit: Fixes CB-2209 (again) Contact ARC update
Updated Branches:
refs/heads/master be6e4d3cc -> 97e7c2c1f
Fixes CB-2209 (again) Contact ARC update
Previous fix missed the case when an addressBook value is not found.
Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/97e7c2c1
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/97e7c2c1
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/97e7c2c1
Branch: refs/heads/master
Commit: 97e7c2c1f9736ed4be48a1278cf5ead57ad50d4b
Parents: be6e4d3
Author: Becky Gibson <be...@apache.org>
Authored: Fri Jan 25 11:45:58 2013 -0500
Committer: Becky Gibson <be...@apache.org>
Committed: Fri Jan 25 11:56:29 2013 -0500
----------------------------------------------------------------------
CordovaLib/Classes/CDVContact.m | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/97e7c2c1/CordovaLib/Classes/CDVContact.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContact.m b/CordovaLib/Classes/CDVContact.m
index 93c4916..9efaf10 100644
--- a/CordovaLib/Classes/CDVContact.m
+++ b/CordovaLib/Classes/CDVContact.m
@@ -1174,9 +1174,13 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
id key = [[CDVContact defaultW3CtoAB] valueForKey:k];
if (key && ![k isKindOfClass:[NSNull class]]) {
bFound = CFDictionaryGetValueIfPresent(dict, (__bridge const void*)key, (void*)&value);
- CFRetain(value);
- [newAddress setObject:(bFound && value != NULL) ? (__bridge id)value:[NSNull null] forKey:k];
- CFRelease(value);
+ if (bFound && (value != NULL)) {
+ CFRetain(value);
+ [newAddress setObject:(__bridge id)value forKey:k];
+ CFRelease(value);
+ } else {
+ [newAddress setObject:[NSNull null] forKey:k];
+ }
} else {
// was a property that iPhone doesn't support
[newAddress setObject:[NSNull null] forKey:k];
@@ -1228,15 +1232,23 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
if ([fields containsObject:kW3ContactFieldValue]) {
// value = user name
bFound = CFDictionaryGetValueIfPresent(dict, kABPersonInstantMessageUsernameKey, (void*)&value);
- CFRetain(value);
- [newDict setObject:(bFound && value != NULL) ? (__bridge id)value:[NSNull null] forKey:kW3ContactFieldValue];
- CFRelease(value);
+ if (bFound && (value != NULL)) {
+ CFRetain(value);
+ [newDict setObject:(__bridge id)value forKey:kW3ContactFieldValue];
+ CFRelease(value);
+ } else {
+ [newDict setObject:[NSNull null] forKey:kW3ContactFieldValue];
+ }
}
if ([fields containsObject:kW3ContactFieldType]) {
bFound = CFDictionaryGetValueIfPresent(dict, kABPersonInstantMessageServiceKey, (void*)&value);
- CFRetain(value);
- [newDict setObject:(bFound && value != NULL) ? (id)[[CDVContact class] convertPropertyLabelToContactType:(__bridge NSString*)value]:[NSNull null] forKey:kW3ContactFieldType];
- CFRelease(value);
+ if (bFound && (value != NULL)) {
+ CFRetain(value);
+ [newDict setObject:(id)[[CDVContact class] convertPropertyLabelToContactType:(__bridge NSString*)value] forKey:kW3ContactFieldType];
+ CFRelease(value);
+ } else {
+ [newDict setObject:[NSNull null] forKey:kW3ContactFieldType];
+ }
}
// always set ID
id identifier = [NSNumber numberWithUnsignedInt:ABMultiValueGetIdentifierAtIndex(multi, i)];