[Checkins] SVN: Products.GenericSetup/trunk/Products/GenericSetup/registry.py storing a reference to a global registry breaks the whole idea of allowing

Godefroid Chapelle gotcha at bubblenet.be
Thu Mar 10 12:55:16 EST 2011


Log message for revision 120852:
  storing a reference to a global registry breaks the whole idea of allowing
  chained component registries
  

Changed:
  U   Products.GenericSetup/trunk/Products/GenericSetup/registry.py

-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/registry.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/registry.py	2011-03-10 16:57:28 UTC (rev 120851)
+++ Products.GenericSetup/trunk/Products/GenericSetup/registry.py	2011-03-10 17:55:16 UTC (rev 120852)
@@ -233,24 +233,28 @@
 
     def __init__(self, interfaceClass):
         self.interfaceClass = interfaceClass
-        self.sm = getGlobalSiteManager()
 
     def keys(self):
-        keys = [name for name, info in self.sm.getUtilitiesFor(self.interfaceClass)]
+        sm = getGlobalSiteManager()
+        keys = [name for name, info in sm.getUtilitiesFor(self.interfaceClass)]
         return keys
 
     def values(self):
-        values = [info for name, info in self.sm.getUtilitiesFor(self.interfaceClass)]
+        sm = getGlobalSiteManager()
+        values = [info for name, info in sm.getUtilitiesFor(self.interfaceClass)]
         return values
 
     def get(self, key):
-        return self.sm.queryUtility(provided=self.interfaceClass, name=key)
+        sm = getGlobalSiteManager()
+        return sm.queryUtility(provided=self.interfaceClass, name=key)
 
     def __setitem__(self, id, info):
-        return self.sm.registerUtility(info, provided=self.interfaceClass, name=id)
+        sm = getGlobalSiteManager()
+        return sm.registerUtility(info, provided=self.interfaceClass, name=id)
 
     def __delitem__(self, id):
-        return self.sm.unregisterUtility(provided=self.interfaceClass, name=id)
+        sm = getGlobalSiteManager()
+        return sm.unregisterUtility(provided=self.interfaceClass, name=id)
 
     def clear(self):
         for key in self.keys():



More information about the checkins mailing list