From c285b16f6534ed077134d57df8345c11cd915357 Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Sun, 19 May 2013 13:35:19 +0000
Subject: [PATCH] svn merge ^/trunk/blender -c56867

---
 .../freestyle/intern/python/BPy_Nature.cpp    | 27 +++++++------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/source/blender/freestyle/intern/python/BPy_Nature.cpp b/source/blender/freestyle/intern/python/BPy_Nature.cpp
index 4f8b1f8f4d5..da09de99590 100644
--- a/source/blender/freestyle/intern/python/BPy_Nature.cpp
+++ b/source/blender/freestyle/intern/python/BPy_Nature.cpp
@@ -263,41 +263,34 @@ int Nature_Init(PyObject *module)
 static PyObject *BPy_Nature_bitwise(PyObject *a, int op, PyObject *b)
 {
 	BPy_Nature *result;
+	long op1, op2;
 
 	if (!BPy_Nature_Check(a) || !BPy_Nature_Check(b)) {
 		PyErr_SetString(PyExc_TypeError, "operands must be a Nature object");
 		return NULL;
 	}
-	if (Py_SIZE(a) != 1) {
-		stringstream msg;
-		msg << "operand 1: unexpected Nature byte length: " << Py_SIZE(a);
-		PyErr_SetString(PyExc_TypeError, msg.str().c_str());
+	op1 = PyLong_AsLong(a);
+	if (PyErr_Occurred()) {
+		PyErr_SetString(PyExc_ValueError, "operand 1: unexpected Nature value");
 		return NULL;
 	}
-	if (Py_SIZE(b) != 1) {
-		stringstream msg;
-		msg << "operand 2: unexpected Nature byte length: " << Py_SIZE(b);
-		PyErr_SetString(PyExc_TypeError, msg.str().c_str());
+	op2 = PyLong_AsLong(b);
+	if (PyErr_Occurred()) {
+		PyErr_SetString(PyExc_ValueError, "operand 2: unexpected Nature value");
 		return NULL;
 	}
 	result = PyObject_NewVar(BPy_Nature, &Nature_Type, 1);
 	if (!result)
 		return NULL;
-	if (Py_SIZE(result) != 1) {
-		stringstream msg;
-		msg << "unexpected Nature byte length: " << Py_SIZE(result);
-		PyErr_SetString(PyExc_TypeError, msg.str().c_str());
-		return NULL;
-	}
 	switch (op) {
 	case '&':
-		result->i.ob_digit[0] = (((PyLongObject *)a)->ob_digit[0]) & (((PyLongObject *)b)->ob_digit)[0];
+		result->i.ob_digit[0] = op1 & op2;
 		break;
 	case '^':
-		result->i.ob_digit[0] = (((PyLongObject *)a)->ob_digit[0]) ^ (((PyLongObject *)b)->ob_digit)[0];
+		result->i.ob_digit[0] = op1 ^ op2;
 		break;
 	case '|':
-		result->i.ob_digit[0] = (((PyLongObject *)a)->ob_digit[0]) | (((PyLongObject *)b)->ob_digit)[0];
+		result->i.ob_digit[0] = op1 | op2;
 		break;
 	}
 	return (PyObject *)result;
-- 
GitLab