From 0835045b06a60c617ef09ec58707e31b80b6474a Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 28 Sep 2023 13:41:31 +0200 Subject: [PATCH] safe_eval: 3.11 compatibility Complement on 1e3531539959dd0d09c622a1eff74db86464edfa (#112450): alongside the split between forwards and backwards jump we missed that 3.11 has a specialized version of each for the `is None` and `is not None` cases. A use of that was added in standard in 16.5 (#120446) but more generally it makes sense that server actions would support conditional tests against `None`, probably... --- odoo/tools/safe_eval.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/odoo/tools/safe_eval.py b/odoo/tools/safe_eval.py index fb553c00dab1e..333478a91dd18 100644 --- a/odoo/tools/safe_eval.py +++ b/odoo/tools/safe_eval.py @@ -127,6 +127,9 @@ def to_opcodes(opnames, _opmap=opmap): # replacement of POP_JUMP_IF_TRUE and POP_JUMP_IF_FALSE 'POP_JUMP_FORWARD_IF_FALSE', 'POP_JUMP_FORWARD_IF_TRUE', 'POP_JUMP_BACKWARD_IF_FALSE', 'POP_JUMP_BACKWARD_IF_TRUE', + # special case of the previous for IS NONE / IS NOT NONE + 'POP_JUMP_FORWARD_IF_NONE', 'POP_JUMP_BACKWARD_IF_NONE', + 'POP_JUMP_FORWARD_IF_NOT_NONE', 'POP_JUMP_BACKWARD_IF_NOT_NONE', #replacement of JUMP_ABSOLUTE 'JUMP_BACKWARD', #replacement of JUMP_IF_NOT_EXC_MATCH