Xavier ALT (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-client-web/6.0-opw-574212-xal into 
lp:openobject-client-web.

Requested reviews:
  Mohammed Shekha(Open ERP) (msh-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-574212-xal/+merge/104104

Hi,

Concurrent call to TinyDict._convert may store a the "lamdba self, v: v" 
expression forever as TinyDict._eval method. This MP add a _real_eval reference 
to orignal _eval so we only have to copy this one to _eval.

Regards,
Xavier
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-574212-xal/+merge/104104
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-client-web/6.0-opw-574212-xal.
=== modified file 'addons/openerp/utils/utils.py'
--- addons/openerp/utils/utils.py	2011-05-31 10:41:41 +0000
+++ addons/openerp/utils/utils.py	2012-04-30 13:01:21 +0000
@@ -122,6 +122,8 @@
 
         return value
 
+    _real_eval = _eval # keep a reference of real _eval method
+
     def __setattr__(self, name, value):
         name = '_terp_%s' % name
         value = self._eval(value)
@@ -320,9 +322,7 @@
                     raise TinyFormError(name.replace('_terp_form/', ''), e.msg, e.value)
 
         # Prevent auto conversion from TinyDict
-        _eval = TinyDict._eval
         TinyDict._eval = lambda self, v: v
-
         try:
             params, data = TinyDict.split(kw)
             params = params.form or {}
@@ -330,7 +330,7 @@
             return TinyDict(**params)
 
         finally:
-            TinyDict._eval = _eval
+            TinyDict._eval = TinyDict._real_eval
 
     def from_python(self):
         return self._convert(False)

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to