use static functions rather then defines for internal matrix__apply_to_copy() and similar.
+ other minor internal changes.
This commit is contained in:
		| @@ -33,18 +33,7 @@ | ||||
|  | ||||
| #define QUAT_SIZE 4 | ||||
|  | ||||
| #define QUAT_APPLY_TO_COPY(quat_meth_noargs, _self) \ | ||||
| 	QuaternionObject *ret= (QuaternionObject *)Quaternion_copy(_self); \ | ||||
| 	PyObject *ret_dummy= quat_meth_noargs(ret); \ | ||||
| 	if(ret_dummy) { \ | ||||
| 		Py_DECREF(ret_dummy); \ | ||||
| 		return (PyObject *)ret; \ | ||||
| 	} \ | ||||
| 	else { /* error */ \ | ||||
| 		Py_DECREF(ret); \ | ||||
| 		return NULL; \ | ||||
| 	} \ | ||||
|  | ||||
| static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self); | ||||
| static PyObject *Quaternion_copy(QuaternionObject *self); | ||||
|  | ||||
| //-----------------------------METHODS------------------------------ | ||||
| @@ -313,7 +302,7 @@ static char Quaternion_normalized_doc[] = | ||||
| ; | ||||
| static PyObject *Quaternion_normalized(QuaternionObject *self) | ||||
| { | ||||
| 	QUAT_APPLY_TO_COPY(Quaternion_normalize, self); | ||||
| 	return quat__apply_to_copy((PyNoArgsFunction)Quaternion_normalize, self); | ||||
| } | ||||
|  | ||||
| //----------------------------Quaternion.invert()------------------ | ||||
| @@ -342,7 +331,7 @@ static char Quaternion_inverted_doc[] = | ||||
| ; | ||||
| static PyObject *Quaternion_inverted(QuaternionObject *self) | ||||
| { | ||||
| 	QUAT_APPLY_TO_COPY(Quaternion_invert, self); | ||||
| 	return quat__apply_to_copy((PyNoArgsFunction)Quaternion_invert, self); | ||||
| } | ||||
|  | ||||
| //----------------------------Quaternion.identity()----------------- | ||||
| @@ -409,7 +398,7 @@ static char Quaternion_conjugated_doc[] = | ||||
| ; | ||||
| static PyObject *Quaternion_conjugated(QuaternionObject *self) | ||||
| { | ||||
| 	QUAT_APPLY_TO_COPY(Quaternion_conjugate, self); | ||||
| 	return quat__apply_to_copy((PyNoArgsFunction)Quaternion_conjugate, self); | ||||
| } | ||||
|  | ||||
| //----------------------------Quaternion.copy()---------------- | ||||
| @@ -967,6 +956,19 @@ static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kw | ||||
| 	return newQuaternionObject(quat, Py_NEW, type); | ||||
| } | ||||
|  | ||||
| static PyObject *quat__apply_to_copy(PyNoArgsFunction quat_func, QuaternionObject *self) | ||||
| { | ||||
| 	PyObject *ret= Quaternion_copy(self); | ||||
| 	PyObject *ret_dummy= quat_func(ret); | ||||
| 	if(ret_dummy) { | ||||
| 		Py_DECREF(ret_dummy); | ||||
| 		return (PyObject *)ret; | ||||
| 	} | ||||
| 	else { /* error */ | ||||
| 		Py_DECREF(ret); | ||||
| 		return NULL; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| //-----------------------METHOD DEFINITIONS ---------------------- | ||||
| static struct PyMethodDef Quaternion_methods[] = { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user