Hi, I am trying to pass a string, containing YAML, from Parrot to the shared library 'libsyck'.
'libsyck' provides two functions: 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. Currently, when calling 'syck_parser_str', the string buffer is copied into newly allocated system memory. In order to avoid memory leaks, this allocated system memory is freed immediately after 'syck_parser_str'. Not surprisingly, bad things are happening when 'syck_parse' is called later. >From strings.pod I gather that the op 'pin' is meant to make strings fit for passing strings to external libraries. For me it would be convenient, if 'pin' would put a trailing '\0' at the end of the used string buffer. Also a pinned string shouldn't have to be copied into newly allocated memory. Is that the right way to go? -- /* [EMAIL PROTECTED] */ Geschenkt: 3 Monate GMX ProMail + 3 Top-Spielfilme auf DVD ++ Jetzt kostenlos testen http://www.gmx.net/de/go/mail ++