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:
-rw-r--r--source/blender/blenkernel/BKE_bad_level_calls.h21
-rw-r--r--source/blender/blenkernel/BKE_node.h1
-rw-r--r--source/blender/blenkernel/bad_level_call_stubs/stubs.c22
-rw-r--r--source/blender/blenkernel/intern/node.c8
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c3
-rw-r--r--source/blender/python/api2_2x/Node.c10
-rw-r--r--source/blender/python/api2_2x/Node.h1
7 files changed, 51 insertions, 15 deletions
diff --git a/source/blender/blenkernel/BKE_bad_level_calls.h b/source/blender/blenkernel/BKE_bad_level_calls.h
index 94eafbf9f71..ca1ac00a33f 100644
--- a/source/blender/blenkernel/BKE_bad_level_calls.h
+++ b/source/blender/blenkernel/BKE_bad_level_calls.h
@@ -63,6 +63,12 @@ struct Script;
struct Text;
struct IpoDriver; /* DNA_curve_types.h */
struct Object;
+struct PyObject;
+struct Node_Type;
+struct BPy_Node;
+struct bNode;
+struct bNodeStack;
+struct ShadeInput;
struct bPythonConstraint;
struct bConstraintOb;
struct bConstraintTarget;
@@ -78,8 +84,14 @@ int BPY_button_eval(char *expr, double *value);
/* pyconstraints */
void BPY_pyconstraint_eval(struct bPythonConstraint *con, struct bConstraintOb *cob, struct ListBase *targets);
void BPY_pyconstraint_targets(struct bPythonConstraint *con, struct bConstraintTarget *ct);
-
-
+/* pynodes */
+int EXPP_dict_set_item_str(struct PyObject *dict, char *key, struct PyObject *value);
+void Node_SetStack(struct BPy_Node *self, struct bNodeStack **stack, int type);
+void InitNode(struct BPy_Node *self, struct bNode *node);
+void InitNode(struct BPy_Node *self, struct bNode *node);
+void Node_SetShi(struct BPy_Node *self, struct ShadeInput *shi);
+struct BPy_NodeSockets *Node_CreateSockets(struct bNode *node);
+int pytype_is_pynode(struct PyObject *pyob);
/* writefile.c */
struct Oops;
void free_oops(struct Oops *oops);
@@ -226,5 +238,10 @@ void PE_free_particle_edit(struct ParticleSystem *psys);
void PE_get_colors(char sel[4], char nosel[4]);
void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys);
+/* only for linux binreloc */
+#ifdef __linux__
+char *zLhm65070058860608_br_find_exe(const char *default_exe);
+#endif
+
#endif
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index bad7f0e90be..6f6d7fa7850 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -367,6 +367,5 @@ void free_compbuf(struct CompBuf *cbuf); /* internal...*/
void init_nodesystem(void);
void free_nodesystem(void);
-void reinit_nodesystem(void);
#endif
diff --git a/source/blender/blenkernel/bad_level_call_stubs/stubs.c b/source/blender/blenkernel/bad_level_call_stubs/stubs.c
index 1bcbed1efb1..1bec1775234 100644
--- a/source/blender/blenkernel/bad_level_call_stubs/stubs.c
+++ b/source/blender/blenkernel/bad_level_call_stubs/stubs.c
@@ -119,6 +119,21 @@ float BPY_pydriver_eval(struct IpoDriver *driver)
{
return 0;
}
+int EXPP_dict_set_item_str(struct PyObject *dict, char *key, struct PyObject *value)
+{
+ return 0;
+}
+void Node_SetStack(struct BPy_Node *self, struct bNodeStack **stack, int type){}
+void InitNode(struct BPy_Node *self, struct bNode *node){}
+void Node_SetShi(struct BPy_Node *self, struct ShadeInput *shi){}
+struct BPy_NodeSockets *Node_CreateSockets(struct bNode *node)
+{
+ return 0;
+}
+int pytype_is_pynode(struct PyObject *pyob)
+{
+ return 0;
+}
/* depsgraph.c: */
struct Object **BPY_pydriver_get_objects(struct IpoDriver *driver)
{
@@ -337,3 +352,10 @@ void PE_free_particle_edit(struct ParticleSystem *psys) {}
void PE_get_colors(char sel[4], char nosel[4]) {}
void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys) {}
+/* binreloc */
+#ifdef __linux__
+char *zLhm65070058860608_br_find_exe(const char *default_exe)
+{
+ return 0;
+}
+#endif
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index f30ad81bf0c..e888338bc9b 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -893,7 +893,6 @@ void nodeMakeDynamicType(bNode *node)
}
}
-
void nodeUpdateType(bNodeTree *ntree, bNode* node, bNodeType *ntype)
{
verify_socket_list(ntree, &node->inputs, ntype->inputs);
@@ -2576,10 +2575,3 @@ void free_nodesystem(void)
remove_dynamic_typeinfos(&node_all_shaders);
BLI_freelistN(&node_all_shaders);
}
-
-void reinit_nodesystem(void)
-{
- /*remove_dynamic_typeinfos(&node_all_composit);*/ /* unused for now */
- /*remove_dynamic_typeinfos(&node_all_shaders);*//*crash on undo/redo*/
-}
-
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
index 3b9ef5ceb55..4c4044f6bce 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
@@ -28,6 +28,7 @@
*/
#include <Python.h>
+#include <compile.h>
#include <eval.h>
#include "DNA_text_types.h"
@@ -352,7 +353,7 @@ static int node_dynamic_parse(struct bNode *node)
Py_DECREF(sockets);
Py_DECREF(args);
- if (!PyErr_Occurred() && pynode && PyObject_TypeCheck(pynode, &Node_Type)==1) {
+ if (!PyErr_Occurred() && pynode && pytype_is_pynode(pynode)) {
InitNode((BPy_Node *)(pynode), node);
nsd->node = pynode;
node->typeinfo->execfunc = node_dynamic_exec_cb;
diff --git a/source/blender/python/api2_2x/Node.c b/source/blender/python/api2_2x/Node.c
index d336cfecde7..0a68509d287 100644
--- a/source/blender/python/api2_2x/Node.c
+++ b/source/blender/python/api2_2x/Node.c
@@ -535,7 +535,7 @@ static int sockoutmap_has_key( BPy_SockMap *self, PyObject *key) {
static int sockoutmap_assign_subscript(BPy_SockMap *self, PyObject *pyidx, PyObject *value) {
int i, idx, len, wanted_len = 0, ret = -1;
PyObject *val;
- PyObject **items;
+ PyObject *items[4];
if (!self->node)
return EXPP_ReturnIntError(PyExc_RuntimeError, "no access to Blender node data!");
@@ -567,9 +567,8 @@ static int sockoutmap_assign_subscript(BPy_SockMap *self, PyObject *pyidx, PyObj
return EXPP_ReturnIntError(PyExc_AttributeError, "expected a non-empty numeric tuple or list");
}
- items = PySequence_Fast_ITEMS(val);
-
for (i = 0; i < len; i++) {
+ items[i] = PySequence_Fast_GET_ITEM(val, i); /* borrowed */
if (!PyNumber_Check(items[i])) {
Py_DECREF(val);
return EXPP_ReturnIntError(PyExc_AttributeError, "expected a *numeric* tuple or list");
@@ -1208,6 +1207,11 @@ BPy_Node *Node_CreatePyObject(bNode *node)
return pynode;
}
+int pytype_is_pynode(PyObject *pyob)
+{
+ return PyObject_TypeCheck(pyob, &Node_Type);
+}
+
void InitNode(BPy_Node *self, bNode *node) {
self->node = node;
}
diff --git a/source/blender/python/api2_2x/Node.h b/source/blender/python/api2_2x/Node.h
index 04b54f86872..e229e678fe9 100644
--- a/source/blender/python/api2_2x/Node.h
+++ b/source/blender/python/api2_2x/Node.h
@@ -80,6 +80,7 @@ extern BPy_Node *Node_CreatePyObject(bNode *node);
extern BPy_NodeSockets *Node_CreateSockets(bNode *node);
extern void Node_SetStack(BPy_Node *self, bNodeStack **stack, int type);
extern void Node_SetShi(BPy_Node *self, ShadeInput *shi);
+extern int pytype_is_pynode(PyObject *pyob);
#define NODE_INPUTSTACK 0
#define NODE_OUTPUTSTACK 1