Am 05/12/2008 08:15 PM schrieb Robert Bradshaw:
> I just tried
> 
> ctypedef struct plugData:
> #    plugDefinition *plug
>     char *ident
>     void *data
> 
> cdef plugData *data = <plugData*>malloc(sizeof(plugData))
> data.ident = "foo"
> 
> and it works fine for me. Perhaps you're redefining plugData somewhere
> else in your header files?

Hm, I don't see a problem. Here's a complete test code that won't compile:

include "stdlib.pxi"
include "plugin.pxi"

cdef plugData *foo():
    cdef plugData *data = <plugData*>malloc(sizeof(plugData))
    data.ident = "foo"


plugin.pxi:
-----------

include "grab.pxi"

cdef extern from "main/plugin.h":
        cdef struct plugData:
                pass
        ctypedef struct plugDefinition:
                char *name
                int abi_version
                void (*init) (plugDefinition *plug, grabParameter *para, int 
argc,
char **argv) except *
                int (*init_options) (plugDefinition *plug) except *
                void (*cleanup) (plugDefinition *plug) except *
                bint (*process) (plugDefinition *plug, char *id, plugData 
*data) except *
                void *reserved1
                void *reserved2
                void *reserved3
        ctypedef plugDefinition* (*plugGetInfoFunc) (int, bint*)

cdef extern from "main/plugin_comm.h":
        ctypedef void (*plugDataDestroyFunc) (void *data)
        ctypedef void (*plugFunc) ()
        ctypedef struct plugData:
                plugDefinition *plug
                char *ident
                void *data
        ctypedef struct plugDataFunc:
                pass
        ctypedef enum:
                PLUG_PRIORITY_DEFAULT
                PLUG_PRIORITY_MIN
                PLUG_PRIORITY_MAX

Anythin wrong with this?

Thanks
Johannes

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to