mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-11-07 07:33:16 +00:00
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:
1 parent
7ca3473b64
commit
c74642b641
8 files changed
+55
-55
No files matched your search
+12
-12
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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--;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user