[Pyrex] Bug? SystemError: error return without exception set

Charles Moad cmoad at indiana.edu
Mon Dec 13 18:03:07 CET 2004


Sure enough I found my own problem.  I forget to include the return type
of the externed function.  It would be nice if pyrex would not compile
successfully for decs of type:

cdef extern c_function "function"(int blah, ...)

Thanks,
	Charlie

On Mon, 2004-12-13 at 11:20 -0500, Charles Moad wrote:
> The subject is the same as one already in the list with the same
> problem.  Someone posted a patch, but it appears the correction has been
> made in the latest version of pyrex.  I am getting the error:
> 
> Traceback (most recent call last):
>   File "./test.py", line 140, in ?
>     initShader('mandelbrot.frag')
>   File "./test.py", line 104, in initShader
>     print glGetActiveUniformARB(shaderProgram, 1)
> SystemError: error return without exception set
> 
> And the c code has appearance of returning 0:
> 
>  __pyx_r = 0;
>   __pyx_L0:;
>   Py_DECREF(__pyx_v_programObj);
>   Py_DECREF(__pyx_v_index);
>   return __pyx_r;
> }
> 
> Here is the pyrex code generating the error:
> 
> cdef extern c_glGetActiveUniformARB "glGetActiveUniformARB"(GLhandleARB
> programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint
> *size, GLenum *type, GLcharARB *name)
> def glGetActiveUniformARB(programObj, index):
>    cdef GLsizei maxLength
>    cdef GLint size
>    cdef GLenum type
>    cdef GLcharARB *name
> 
>    c_glGetObjectParameterivARB(programObj,
> GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB, &maxLength)
>    name = <GLcharARB*>PyMem_Malloc(maxLength+1)
>    c_glGetActiveUniformARB(programObj, index, maxLength, NULL, &size,
> &type, name)
> 
>    return (size, type, name)
> 
> 
> Any help would be greatly appreciated!
> 
-- 
Charles Moad <cmoad at indiana.edu>




More information about the Pyrex mailing list