Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-07-06 20:34:41 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-07-06 20:34:41 +0300
commit4ac048f4e4ef1945fe085c3c0ebf263eb51d8d1b (patch)
tree69d39499779da95c1f4b1c963d4778832830e99f
parent29b8adec61b2c88a07d29b78b26aeca26658a166 (diff)
parentb94222b0903cee2c453e46b7bdb4c9862bbc771c (diff)
Merge branch 'master' into blender2.8
-rw-r--r--source/blender/python/intern/bpy_driver.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c
index b8c71d4e054..d3464ea5841 100644
--- a/source/blender/python/intern/bpy_driver.c
+++ b/source/blender/python/intern/bpy_driver.c
@@ -255,7 +255,6 @@ static void pydriver_error(ChannelDriver *driver)
#define OK_OP(op) [op] = 1
const char secure_opcodes[255] = {
- OK_OP(0),
OK_OP(POP_TOP),
OK_OP(ROT_TWO),
OK_OP(ROT_THREE),
@@ -349,15 +348,14 @@ static bool bpy_driver_secure_bytecode_validate(PyObject *expr_code, PyObject *d
/* Check opcodes. */
{
- const char *codestr;
+ const _Py_CODEUNIT *codestr;
Py_ssize_t code_len;
PyBytes_AsStringAndSize(py_code->co_code, (char **)&codestr, &code_len);
+ code_len /= sizeof(*codestr);
-#define CODESIZE(op) (HAS_ARG(op) ? 3 : 1)
-
- for (Py_ssize_t i = 0; i < code_len; i += CODESIZE(codestr[i])) {
- const int opcode = codestr[i];
+ for (Py_ssize_t i = 0; i < code_len; i++) {
+ const int opcode = _Py_OPCODE(codestr[i]);
if (secure_opcodes[opcode] == 0) {
fprintf(stderr, "\tBPY_driver_eval() - restructed access disallows opcode '%d', "
"enable auto-execution to support\n", opcode);