Author: chromatic
Date: Sat Jun 16 01:20:45 2007
New Revision: 19040
Modified:
trunk/src/pmc/coroutine.pmc
Log:
[PMC] Cleaned up two memory leaks in Coroutine PMC.
Modified: trunk/src/pmc/coroutine.pmc
==============================================================================
--- trunk/src/pmc/coroutine.pmc (original)
+++ trunk/src/pmc/coroutine.pmc Sat Jun 16 01:20:45 2007
@@ -100,10 +100,26 @@
void init() {
PMC_struct_val(SELF) = new_coroutine(INTERP);
- PMC_pmc_val(SELF) = NULL;
+ PMC_pmc_val(SELF) = NULL;
PObj_custom_mark_destroy_SETALL(SELF);
}
+/*
+
+=item C<void destroy()>
+
+Destroys the coroutine.
+
+*/
+
+ void destroy () {
+ Parrot_coro *sub = PMC_coro(SELF);
+ if (sub->ctx)
+ Parrot_free_context(interp, sub->ctx, 0);
+
+ SUPER();
+ }
+
PMC* clone() {
Parrot_coro *sub;
PMC *ret = pmc_new_noinit(INTERP, SELF->vtable->base_type);