[FIX] safe_eval: add support for new JUMP OPCODES from Python 2.7
authorOlivier Dony <odo@openerp.com>
Tue, 5 Jul 2011 15:11:11 +0000 (17:11 +0200)
committerOlivier Dony <odo@openerp.com>
Tue, 5 Jul 2011 15:11:11 +0000 (17:11 +0200)
lp bug: https://launchpad.net/bugs/673773 fixed

bzr revid: odo@openerp.com-20110705151111-psv3webxtqgh4l3z

bin/tools/safe_eval.py

index 665b534..69cd69f 100644 (file)
@@ -54,9 +54,12 @@ _EXPR_OPCODES = _CONST_OPCODES.union(set(opmap[x] for x in [
 
 _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [
     'STORE_MAP', 'LOAD_NAME', 'CALL_FUNCTION', 'COMPARE_OP', 'LOAD_ATTR',
-    'STORE_NAME', 'GET_ITER', 'FOR_ITER', 'LIST_APPEND', 'JUMP_ABSOLUTE',
-    'DELETE_NAME', 'JUMP_IF_TRUE', 'JUMP_IF_FALSE','MAKE_FUNCTION','JUMP_FORWARD',
-    'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3'
+    'STORE_NAME', 'GET_ITER', 'FOR_ITER', 'LIST_APPEND', 'DELETE_NAME',
+    'JUMP_FORWARD', 'JUMP_IF_TRUE', 'JUMP_IF_FALSE', 'JUMP_ABSOLUTE',
+    'MAKE_FUNCTION', 'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3',
+    # New in Python 2.7 - http://bugs.python.org/issue4715 :
+    'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE',
+    'POP_JUMP_IF_TRUE'
     ] if x in opmap))
 
 _logger = logging.getLogger('safe_eval')