Finally and after more changes I like to ci in one bunch, the parrot interpreter is (almost) memory leak free.

Summary

Currently broken test:
- t/op/interp_2 with standard allocator and --gc-malloc

Memory leakages:
- PIO (PIO_new doesn't remember ParrotIO structures)
- rx (bitmaps)
- intstack (my br0ken destroy code)

Changes and bugfixes beyond Parrot_destroy:

string.c:
- illegal usage of buflen (buflen may only be used to determine, if there is space after bufused)
- string_set() is gone, highly (WRT malloc) illegal reusage of existing string headers - and unnecessary IMHO

spf_render: simplified WRT string_set

packfile and others: don't destroy resources which DOD/GC handles

TODOs
- s. XXX in string.c
- rx.c
- move destroy code to the appropriate files
- fix - finally - BUFFER_external_FLAG, which is IMHO broken with standard allocator, I did introduce a new flag, which currently only malloc allocators are using.

I did undo some of joshs indent changes - rediffing was to cumbersome - sorry.

leo

Reply via email to