Bernhard Schmalhofer <[EMAIL PROTECTED]> wrote:
> Hi,

> I am trying to pass a string, containing YAML, from Parrot to the shared
> library 'libsyck'.


>   void syck_parser_str( SyckParser *, char *, long, SyckIoStrRead );  (
> v_ptip )
  ^^^^^^

>   SYMID syck_parse( SyckParser * );                                   ( i_p
> )

> 'syck_parser_str' tells libsyck about the string to be parsed.
> 'syck_parse' does the parsing.
> This means that the string buffer has to stay around, until the parsing is
> done.

This is what the "t" signature char is doing anyway - Oops or better,
what it should to. While it's using string_to_cstring the created string
isn't freed (unless the library would free it, which is unlikely).

So what we need for the "t" signature is a string_pin with NUL append.

Patches welcome,
leo

Reply via email to