[Pyrex] Return value problems
    Georg Grabler 
    ggrabler at gmail.com
       
    Mon May 28 19:25:19 UTC 2007
    
    
  
Hey lists,
I've once again a problem. Maybe minimalistic problem, but i don't seem to get 
around it.
I made a configuration object / class, which (also) wraps some c structures.
cdef extern from "list.h"
  cdef struct __list_t:
    void * data
    __list_t *prev
    __list_t *next
cdef extern from "baseh.h":
  ctypedef __list_t list_t
cdef class config:
  cdef list_t *one
  cdef list_t *two
  cdef char* xyz
This has several functions in the config.pyx as well, such as
cdef getXYZ(self)
  return self.xyz
i tried the same with def getXYZ(self)
Now well, when i now want to check actually what xyz is:
cimport config
config = config.config()
if (config.getXYZ() == NULL):
 ## more code
if (<void*>config.getXYZ() == NULL)
 ## more code
it tells me that a temporary python obeject cannot be casted:
"Cannot convert 'void (*)' to Python object"
in the 2nd case
"Casting temporary Python object to non-Python object type"
I cannot access xyz directly... well, i can, but i can't with one and two.
How to implement this? I definitely want a C type to be returned, or at least 
i want to do this comparison, since i need to check if those values are set 
before i perform any action.
Does anyone have an idea how to implement this?
Kind reagards
-- 
Yours,
Georg (STiAT)
    
    
More information about the Pyrex
mailing list