diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2009-08-03 18:38:15 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2009-08-03 18:38:15 +0400 |
commit | d4ff63fe20d912a72a7695852a204ab3f1d3dce7 (patch) | |
tree | 648f56790599a1ef9713ba56a08c85bdb6690ce9 /source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp | |
parent | e2eb4d567c27b0ea58dd6c1687dcd9538b64202e (diff) |
* Fixed uninitialized pointers in "__init__" methods of UnaryFunction1D types.
There was a known issue for a long time that we occasionally encountered
strange "TypeError: an integer is required" and "RuntimeWarning: tp_compare
didn't return -1 or -2 for exception", as shown in the following unit test
log. The source of the former error was PyInt_AsLong(obj) being used by
IntegrationType_from_BPy_IntegrationType(obj), where "obj" was not properly
initialized in "__init__" before the converter was called. The TypeError
was left unattended for a while and showed up when a comparison occurred
and the TypeError was detected, which resulted in the latter warning.
> runTest (__main__.UnaryFunction1DDoubleInitTestCase) ...
> .\blender:211: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
> ERROR
>
> ======================================================================
> ERROR: runTest (__main__.UnaryFunction1DDoubleInitTestCase)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "init_tests.py", line 211, in runTest
> TypeError: an integer is required
>
> ----------------------------------------------------------------------
* Also removed unnecessary error messages in "__init__" methods of
UnaryFunction1D types.
Diffstat (limited to 'source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp')
-rw-r--r-- | source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp b/source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp index 1521258543d..dd793ce128c 100644 --- a/source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp +++ b/source/blender/freestyle/intern/python/UnaryFunction1D/BPy_UnaryFunction1DFloat.cpp @@ -131,12 +131,10 @@ PyMODINIT_FUNC UnaryFunction1DFloat_Init( PyObject *module ) { int UnaryFunction1DFloat___init__(BPy_UnaryFunction1DFloat* self, PyObject *args) { - PyObject *obj; + PyObject *obj = 0; - if( !PyArg_ParseTuple(args, "|O!", &IntegrationType_Type, &obj) ) { - cout << "ERROR: UnaryFunction1DFloat___init__ " << endl; + if( !PyArg_ParseTuple(args, "|O!", &IntegrationType_Type, &obj) ) return -1; - } if( !obj ) self->uf1D_float = new UnaryFunction1D<float>(); |