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>2009-09-03 05:52:10 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-09-03 05:52:10 +0400
commitac3f0695a2cf3d5706d8f49b1276579889997990 (patch)
treeae34b25fab82b9dd33313785cf600d26737de24f /source/blender/python/intern
parent9004dc665cd303dc6bc84d1ea92716dc0c0020d3 (diff)
remove Py_CmpToRich (copy of py3.0 function), instead only support == and != for PyRNA and KX_PySequence types.
mesh1 > mesh2 # will raise an error.
Diffstat (limited to 'source/blender/python/intern')
-rw-r--r--source/blender/python/intern/bpy_rna.c61
-rw-r--r--source/blender/python/intern/bpy_util.c38
-rw-r--r--source/blender/python/intern/bpy_util.h2
3 files changed, 50 insertions, 51 deletions
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 3902a9fd9b5..8ba3b5f8732 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -144,25 +144,64 @@ static int pyrna_prop_compare( BPy_PropertyRNA * a, BPy_PropertyRNA * b )
return (a->prop==b->prop && a->ptr.data==b->ptr.data ) ? 0 : -1;
}
-/* For some reason python3 needs these :/ */
-static PyObject *pyrna_struct_richcmp(BPy_StructRNA * a, BPy_StructRNA * b, int op)
+static PyObject *pyrna_struct_richcmp(PyObject *a, PyObject *b, int op)
{
- int cmp_result= -1; /* assume false */
- if (BPy_StructRNA_Check(a) && BPy_StructRNA_Check(b)) {
- cmp_result= pyrna_struct_compare(a, b);
+ PyObject *res;
+ int ok= -1; /* zero is true */
+
+ if (BPy_StructRNA_Check(a) && BPy_StructRNA_Check(b))
+ ok= pyrna_struct_compare((BPy_StructRNA *)a, (BPy_StructRNA *)b);
+
+ switch (op) {
+ case Py_NE:
+ ok = !ok; /* pass through */
+ case Py_EQ:
+ res = ok ? Py_False : Py_True;
+ break;
+
+ case Py_LT:
+ case Py_LE:
+ case Py_GT:
+ case Py_GE:
+ res = Py_NotImplemented;
+ break;
+ default:
+ PyErr_BadArgument();
+ return NULL;
}
- return Py_CmpToRich(op, cmp_result);
+ Py_INCREF(res);
+ return res;
}
-static PyObject *pyrna_prop_richcmp(BPy_PropertyRNA * a, BPy_PropertyRNA * b, int op)
+static PyObject *pyrna_prop_richcmp(PyObject *a, PyObject *b, int op)
{
- int cmp_result= -1; /* assume false */
- if (BPy_PropertyRNA_Check(a) && BPy_PropertyRNA_Check(b)) {
- cmp_result= pyrna_prop_compare(a, b);
+ PyObject *res;
+ int ok= -1; /* zero is true */
+
+ if (BPy_PropertyRNA_Check(a) && BPy_PropertyRNA_Check(b))
+ ok= pyrna_prop_compare((BPy_PropertyRNA *)a, (BPy_PropertyRNA *)b);
+
+ switch (op) {
+ case Py_NE:
+ ok = !ok; /* pass through */
+ case Py_EQ:
+ res = ok ? Py_False : Py_True;
+ break;
+
+ case Py_LT:
+ case Py_LE:
+ case Py_GT:
+ case Py_GE:
+ res = Py_NotImplemented;
+ break;
+ default:
+ PyErr_BadArgument();
+ return NULL;
}
- return Py_CmpToRich(op, cmp_result);
+ Py_INCREF(res);
+ return res;
}
/*----------------------repr--------------------------------------------*/
diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c
index be343843acc..1766be62c83 100644
--- a/source/blender/python/intern/bpy_util.c
+++ b/source/blender/python/intern/bpy_util.c
@@ -122,44 +122,6 @@ int BPY_flag_from_seq(BPY_flag_def *flagdef, PyObject *seq, int *flag)
return 0; /* ok */
}
-
-/* Copied from pythons 3's Object.c */
-PyObject *
-Py_CmpToRich(int op, int cmp)
-{
- PyObject *res;
- int ok;
-
- if (PyErr_Occurred())
- return NULL;
- switch (op) {
- case Py_LT:
- ok = cmp < 0;
- break;
- case Py_LE:
- ok = cmp <= 0;
- break;
- case Py_EQ:
- ok = cmp == 0;
- break;
- case Py_NE:
- ok = cmp != 0;
- break;
- case Py_GT:
- ok = cmp > 0;
- break;
- case Py_GE:
- ok = cmp >= 0;
- break;
- default:
- PyErr_BadArgument();
- return NULL;
- }
- res = ok ? Py_True : Py_False;
- Py_INCREF(res);
- return res;
-}
-
/* for debugging */
void PyObSpit(char *name, PyObject *var) {
fprintf(stderr, "<%s> : ", name);
diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h
index 0400d595520..83fa7a5b7c4 100644
--- a/source/blender/python/intern/bpy_util.h
+++ b/source/blender/python/intern/bpy_util.h
@@ -50,8 +50,6 @@ void PyObSpit(char *name, PyObject *var);
void PyLineSpit(void);
void BPY_getFileAndNum(char **filename, int *lineno);
-PyObject *Py_CmpToRich(int op, int cmp);
-
PyObject *BPY_exception_buffer(void);
/* own python like utility function */