From 0ef4e9bca5901602b9edc7519c54b48eccea3049 Mon Sep 17 00:00:00 2001 From: Ross Boucher Date: Sun, 26 Jul 2009 23:56:18 -0700 Subject: [PATCH] store dependent keys on the class object itself, rather than in a global map. --- Foundation/CPKeyValueObserving.j | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Foundation/CPKeyValueObserving.j b/Foundation/CPKeyValueObserving.j index 897702537..a2c3fc2d5 100644 --- a/Foundation/CPKeyValueObserving.j +++ b/Foundation/CPKeyValueObserving.j @@ -99,7 +99,7 @@ CPKeyValueChangeRemoval = 3; CPKeyValueChangeReplacement = 4; var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld, - DependentKeysMap = {}, + DependentKeysKey = "$KVODEPENDENT", KVOProxyKey = "$KVOPROXY"; //rule of thumb: _ methods are called on the real proxy object, others are called on the "fake" proxy object (aka the real object) @@ -210,12 +210,12 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld, if (!affectingKeysCount) return; - var dependentKeysForClass = DependentKeysMap[[_nativeClass UID]]; + var dependentKeysForClass = _nativeClass[DependentKeysKey]; if (!dependentKeysForClass) { dependentKeysForClass = {}; - DependentKeysMap[[_nativeClass UID]] = dependentKeysForClass; + _nativeClass[DependentKeysKey] = dependentKeysForClass; } while (affectingKeysCount--) @@ -374,7 +374,7 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld, [observerInfo.observer observeValueForKeyPath:aKey ofObject:_targetObject change:changes context:observerInfo.context]; } - var dependentKeysMap = DependentKeysMap[[_nativeClass UID]]; + var dependentKeysMap = _nativeClass[DependentKeysKey]; if (!dependentKeysMap) return;