Replacing several instances of -hash with the new -UID method. Partial fix for http://github.com/280north/cappuccino/issues#issue/10 .

Reviewed by andrew.
This commit is contained in:
Francisco Ryan Tolmasky I committed 2009-06-07 15:47:21 -07:00
1 parent 7ca3473b64
commit c74642b641
8 files changed
+55 -55

No files matched your search

+12 -12
View File
@@ -40,12 +40,12 @@
[super addObject:anObject];
var hash = [anObject hash];
var UID = [anObject UID];
if (_counts[hash] === undefined)
_counts[hash] = 1;
if (_counts[UID] === undefined)
_counts[UID] = 1;
else
++_counts[hash];
++_counts[UID];
}
- (void)removeObject:(id)anObject
@@ -53,18 +53,18 @@
if (!_counts)
return;
var hash = [anObject hash];
var UID = [anObject UID];
if (_counts[hash] === undefined)
if (_counts[UID] === undefined)
return;
else
{
--_counts[hash];
--_counts[UID];
if (_counts[hash] === 0)
if (_counts[UID] === 0)
{
delete _counts[hash];
delete _counts[UID];
[super removeObject:anObject];
}
}
@@ -85,12 +85,12 @@
if (!_counts)
_counts = {};
var hash = [anObject hash];
var UID = [anObject UID];
if (_counts[hash] === undefined)
if (_counts[UID] === undefined)
return 0;
return _counts[hash];
return _counts[UID];
}
+5 -5
View File
@@ -86,7 +86,7 @@ CPJSONPCallbackReplacementString = @"${JSONP_CALLBACK}";
{
try
{
CPJSONPConnectionCallbacks["callback"+[self hash]] = function(data)
CPJSONPConnectionCallbacks["callback"+[self UID]] = function(data)
{
[_delegate connection:self didReceiveData:data];
[self removeScriptTag];
@@ -100,11 +100,11 @@ CPJSONPCallbackReplacementString = @"${JSONP_CALLBACK}";
if (_callbackParameter)
{
source += (source.indexOf('?') < 0) ? "?" : "&";
source += _callbackParameter+"=CPJSONPConnectionCallbacks.callback"+[self hash];
source += _callbackParameter+"=CPJSONPConnectionCallbacks.callback"+[self UID];
}
else if (source.indexOf(CPJSONPCallbackReplacementString) >= 0)
{
source = [source stringByReplacingOccurrencesOfString:CPJSONPCallbackReplacementString withString:"CPJSONPConnectionCallbacks.callback"+[self hash]];
source = [source stringByReplacingOccurrencesOfString:CPJSONPCallbackReplacementString withString:"CPJSONPConnectionCallbacks.callback"+[self UID]];
}
else
return;
@@ -130,8 +130,8 @@ CPJSONPCallbackReplacementString = @"${JSONP_CALLBACK}";
if(_scriptTag && _scriptTag.parentNode == head)
head.removeChild(_scriptTag);
CPJSONPConnectionCallbacks["callback"+[self hash]] = nil;
delete CPJSONPConnectionCallbacks["callback"+[self hash]];
CPJSONPConnectionCallbacks["callback"+[self UID]] = nil;
delete CPJSONPConnectionCallbacks["callback"+[self UID]];
}
- (void)cancel
+6 -6
View File
@@ -45,9 +45,9 @@ CPUnknownUserInfoKey = @"CPUnknownUserInfoKey";
if (!CPObjectAccessorsForClass)
CPObjectAccessorsForClass = [CPDictionary dictionary];
var hash = [isa hash],
var UID = [isa UID],
selector = nil,
accessors = [CPObjectAccessorsForClass objectForKey:hash];
accessors = [CPObjectAccessorsForClass objectForKey:UID];
if (accessors)
{
@@ -60,7 +60,7 @@ CPUnknownUserInfoKey = @"CPUnknownUserInfoKey";
{
accessors = [CPDictionary dictionary];
[CPObjectAccessorsForClass setObject:accessors forKey:hash];
[CPObjectAccessorsForClass setObject:accessors forKey:UID];
}
var capitalizedKey = aKey.charAt(0).toUpperCase() + aKey.substr(1);
@@ -88,9 +88,9 @@ CPUnknownUserInfoKey = @"CPUnknownUserInfoKey";
if (!CPObjectModifiersForClass)
CPObjectModifiersForClass = [CPDictionary dictionary];
var hash = [isa hash],
var UID = [isa UID],
selector = nil,
modifiers = [CPObjectModifiersForClass objectForKey:hash];
modifiers = [CPObjectModifiersForClass objectForKey:UID];
if (modifiers)
{
@@ -103,7 +103,7 @@ CPUnknownUserInfoKey = @"CPUnknownUserInfoKey";
{
modifiers = [CPDictionary dictionary];
[CPObjectModifiersForClass setObject:modifiers forKey:hash];
[CPObjectModifiersForClass setObject:modifiers forKey:UID];
}
if (selector)
+11 -11
View File
@@ -58,7 +58,7 @@
if (!anObserver || !aPath)
return;
[[KVOProxyMap objectForKey:[self hash]] _removeObserver:anObserver forKeyPath:aPath];
[[KVOProxyMap objectForKey:[self UID]] _removeObserver:anObserver forKeyPath:aPath];
}
+ (BOOL)automaticallyNotifiesObserversForKey:(CPString)aKey
@@ -119,7 +119,7 @@ var KVOProxyMap = [CPDictionary dictionary],
+ (id)proxyForObject:(CPObject)anObject
{
var proxy = [KVOProxyMap objectForKey:[anObject hash]];
var proxy = [KVOProxyMap objectForKey:[anObject UID]];
if (proxy)
return proxy;
@@ -128,7 +128,7 @@ var KVOProxyMap = [CPDictionary dictionary],
[proxy _replaceClass];
[KVOProxyMap setObject:proxy forKey:[anObject hash]];
[KVOProxyMap setObject:proxy forKey:[anObject UID]];
return proxy;
}
@@ -215,12 +215,12 @@ var KVOProxyMap = [CPDictionary dictionary],
if (!composedOfKeys)
return;
var dependentKeysForClass = [DependentKeysMap objectForKey:[_nativeClass hash]];
var dependentKeysForClass = [DependentKeysMap objectForKey:[_nativeClass UID]];
if (!dependentKeysForClass)
{
dependentKeysForClass = [CPDictionary new];
[DependentKeysMap setObject:dependentKeysForClass forKey:[_nativeClass hash]];
[DependentKeysMap setObject:dependentKeysForClass forKey:[_nativeClass UID]];
}
for (var i=0, count=composedOfKeys.length; i<count; i++)
@@ -259,7 +259,7 @@ var KVOProxyMap = [CPDictionary dictionary],
[_observersForKey setObject:observers forKey:aPath];
}
[observers setObject:_CPKVOInfoMake(anObserver, options, aContext, forwarder) forKey:[anObserver hash]];
[observers setObject:_CPKVOInfoMake(anObserver, options, aContext, forwarder) forKey:[anObserver UID]];
if (options & CPKeyValueObservingOptionInitial)
{
@@ -279,11 +279,11 @@ var KVOProxyMap = [CPDictionary dictionary],
if (aPath.indexOf('.') != CPNotFound)
{
var forwarder = [observers objectForKey:[anObserver hash]].forwarder;
var forwarder = [observers objectForKey:[anObserver UID]].forwarder;
[forwarder finalize];
}
[observers removeObjectForKey:[anObserver hash]];
[observers removeObjectForKey:[anObserver UID]];
if (![observers count])
[_observersForKey removeObjectForKey:aPath];
@@ -291,7 +291,7 @@ var KVOProxyMap = [CPDictionary dictionary],
if (![_observersForKey count])
{
_targetObject.isa = _nativeClass; //restore the original class
[KVOProxyMap removeObjectForKey:[_targetObject hash]];
[KVOProxyMap removeObjectForKey:[_targetObject UID]];
}
}
@@ -375,7 +375,7 @@ var KVOProxyMap = [CPDictionary dictionary],
[observerInfo.observer observeValueForKeyPath:aKey ofObject:_targetObject change:changes context:observerInfo.context];
}
var keysComposedOfKey = [[[DependentKeysMap objectForKey:[_nativeClass hash]] objectForKey:aKey] allObjects];
var keysComposedOfKey = [[[DependentKeysMap objectForKey:[_nativeClass UID]] objectForKey:aKey] allObjects];
if (!keysComposedOfKey)
return;
@@ -428,7 +428,7 @@ var KVOProxyMap = [CPDictionary dictionary],
- (Class)class
{
return [KVOProxyMap objectForKey:[self hash]]._nativeClass;
return [KVOProxyMap objectForKey:[self UID]]._nativeClass;
}
- (Class)superclass
+10 -10
View File
@@ -208,7 +208,7 @@ var _CPKeyedArchiverStringClass = Nil,
// Do whatever with the class, yo.
// We call willEncodeObject previously.
_plistObject = _plistObjects[[_UIDs objectForKey:[object hash]]];
_plistObject = _plistObjects[[_UIDs objectForKey:[object UID]]];
[object encodeWithCoder:self];
if (_delegate && _delegateSelectors & _CPKeyedArchiverDidEncodeObjectSelector)
@@ -480,8 +480,8 @@ var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional)
anObject = [_CPKeyedArchiverValue valueWithJSObject:anObject];
// Get the proper replacement object
var hash = [anObject hash],
object = [self._replacementObjects objectForKey:hash];
var GUID = [anObject UID],
object = [self._replacementObjects objectForKey:GUID];
// If a replacement object doesn't exist, then actually ask for one.
// Explicitly compare to nil because object could be === 0.
@@ -506,7 +506,7 @@ var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional)
}
}
[self._replacementObjects setObject:object forKey:hash];
[self._replacementObjects setObject:object forKey:GUID];
}
// If we still don't have an object by this point, then return a
@@ -516,7 +516,7 @@ var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional)
return _CPKeyedArchiverNullReference;
// If not, then grab the object's UID
var UID = [self._UIDs objectForKey:hash = [object hash]];
var UID = [self._UIDs objectForKey:GUID = [object UID]];
// If this object doesn't have a unique index in the object table yet,
// then it also hasn't been properly encoded. We explicitly compare
@@ -527,10 +527,10 @@ var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional)
if (isConditional)
{
// If we haven't already noted this conditional object...
if ((UID = [self._conditionalUIDs objectForKey:hash]) === nil)
if ((UID = [self._conditionalUIDs objectForKey:GUID]) === nil)
{
// Use the null object as a placeholder.
[self._conditionalUIDs setObject:UID = [self._plistObjects count] forKey:hash];
[self._conditionalUIDs setObject:UID = [self._plistObjects count] forKey:GUID];
[self._plistObjects addObject:_CPKeyedArchiverNullString];
}
}
@@ -582,17 +582,17 @@ var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional)
[plistObject setObject:[CPDictionary dictionaryWithObject:classUID forKey:_CPKeyedArchiverUIDKey] forKey:_CPKeyedArchiverClassKey];
}
UID = [self._conditionalUIDs objectForKey:hash];
UID = [self._conditionalUIDs objectForKey:GUID];
// If this object WAS previously encoded conditionally...
if (UID !== nil)
{
[self._UIDs setObject:UID forKey:hash];
[self._UIDs setObject:UID forKey:GUID];
[self._plistObjects replaceObjectAtIndex:UID withObject:plistObject];
}
else
{
[self._UIDs setObject:UID = [self._plistObjects count] forKey:hash];
[self._UIDs setObject:UID = [self._plistObjects count] forKey:GUID];
[self._plistObjects addObject:plistObject];
}
}
+5 -5
View File
@@ -201,12 +201,12 @@ var _CPNotificationCenterPostNotification = function(/* CPNotificationCenter */
anObject = [CPNull null];
// Grab all the listeners for this notification/object pair
var observers = [_objectObservers objectForKey:[anObject hash]];
var observers = [_objectObservers objectForKey:[anObject UID]];
if (!observers)
{
observers = [];
[_objectObservers setObject:observers forKey:[anObject hash]];
[_objectObservers setObject:observers forKey:[anObject UID]];
}
if (observers == _postingObservers)
@@ -248,7 +248,7 @@ var _CPNotificationCenterPostNotification = function(/* CPNotificationCenter */
}
else
{
var key = [anObject hash],
var key = [anObject UID],
observers = [_objectObservers objectForKey:key];
count = observers ? observers.length : 0;
@@ -284,7 +284,7 @@ var _CPNotificationCenterPostNotification = function(/* CPNotificationCenter */
// rigorous testing in those cases.
var object = [aNotification object];
if (object != nil && (_postingObservers = [_objectObservers objectForKey:[object hash]]))
if (object != nil && (_postingObservers = [_objectObservers objectForKey:[object UID]]))
{
var observers = _postingObservers,
count = observers.length;
@@ -303,7 +303,7 @@ var _CPNotificationCenterPostNotification = function(/* CPNotificationCenter */
}
// Now do the same for the nil object observers...
_postingObservers = [_objectObservers objectForKey:[[CPNull null] hash]];
_postingObservers = [_objectObservers objectForKey:[[CPNull null] UID]];
if (!_postingObservers)
return;
+3 -3
View File
@@ -269,7 +269,7 @@ CPLog(@"Got some class: %@", inst);</pre>
*/
- (CPString)description
{
return "<" + isa.name + " 0x" + [CPString stringWithHash:[self hash]] + ">";
return "<" + isa.name + " 0x" + [CPString stringWithHash:[self UID]] + ">";
}
// Sending Messages
@@ -357,7 +357,7 @@ CPLog(@"Got some class: %@", inst);</pre>
{
[CPException raise:CPInvalidArgumentException reason:
(class_isMetaClass(isa) ? "+" : "-") + " [" + [self className] + " " + aSelector + "] unrecognized selector sent to " +
(class_isMetaClass(isa) ? "class" : "instance") + " 0x" + [CPString stringWithHash:[self hash]]];
(class_isMetaClass(isa) ? "class" : "instance") + " 0x" + [CPString stringWithHash:[self UID]]];
}
// Archiving
@@ -482,7 +482,7 @@ CPLog(@"Got some class: %@", inst);</pre>
*/
- (BOOL)isEqual:(id)anObject
{
return self === anObject || [self hash] === [anObject hash];
return self === anObject || [self UID] === [anObject UID];
}
/*!
+3 -3
View File
@@ -232,7 +232,7 @@
*/
- (BOOL)containsObject:(id)anObject
{
if (_contents[[anObject hash]] && [_contents[[anObject hash]] isEqual:anObject])
if (_contents[[anObject UID]] && [_contents[[anObject UID]] isEqual:anObject])
return YES;
return NO;
@@ -372,7 +372,7 @@
*/
- (void)addObject:(id)anObject
{
_contents[[anObject hash]] = anObject;
_contents[[anObject UID]] = anObject;
_count++;
}
@@ -396,7 +396,7 @@
{
if ([self containsObject:anObject])
{
delete _contents[[anObject hash]];
delete _contents[[anObject UID]];
_count--;
}
}