Maybe a ctype which is a delay node, along the lines of
'recursive-contract', is the right thing here.

Sam

On Mon, Feb 2, 2015, 8:05 AM Anthony Carrico <acarr...@memebeam.org> wrote:

> On 02/02/2015 01:17 AM, Matthew Flatt wrote:
> > It's also valid to reference `wl_interface-pointer` directly:
> ...
> >
> > I don't have a nicer solution if you want to refer to
> > `_wl_message-pointer`, though.
> >
>
> The forward reference is actually in wl_message, like this:
>
> (define-cstruct _wl_message
>   ((name _string/utf-8)
>    (signature _string/utf-8)
>    (types (_cpointer 'wl_interface))))
>
> (define-cstruct _wl_interface
>   ((name _string/utf-8)
>    (version _int)
>    (method_count _int)
>    (methods _wl_message-pointer)
>    (event_count _int)
>    (events _wl_message-pointer)))
>
> I ended up just inlining (_cpointer 'wl_interface) for the forward
> reference. This ends up creating two (_cpointer 'wl_interface) ctypes,
> but it's no problem, correct?
>
> I don't think it is possible to "reference 'wl_interface-pointer'
> directly" as you suggest in this case because of the "cannot reference
> an identifier before its definition" error.
>
> --
> Anthony Carrico
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to