On Saturday 19 July 2008 09:57:02 [EMAIL PROTECTED] wrote: > Log: > [PDD13] > * Implement get_directory(). > * Fix get_string() so it works. > * Add the beginnings of a test script for the Packfile class.
> --- branches/pdd13pbc/src/pmc/packfile.pmc (original) > +++ branches/pdd13pbc/src/pmc/packfile.pmc Sat Jul 19 09:57:02 2008 > @@ -20,6 +20,7 @@ > */ > > #include "parrot/parrot.h" > +#include "pmc_packfiledirectory.h" > > pmclass Packfile { > > @@ -64,10 +65,10 @@ > VTABLE STRING *get_string() { > PackFile *pf = PMC_data_typed(SELF, PackFile *); > STRING *str = new_string_header(interp, 0); > - opcode_t length = PackFile_pack_size(interp, pf); > + opcode_t length = PackFile_pack_size(interp, pf) * > sizeof(opcode_t); Parrot_allocate_string(interp, str, length); > PackFile_pack(interp, pf, (opcode_t*)str->strstart); > - str->bufused = length; > + str->bufused = str->strlen = length; > return str; > } > Poking at strings directly seems unclean; do we need to add another function to src/packfile.c to return a packed packfile as a C string, and then create the string directly here in get_string()? -- c