Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
A couple of missing bits of marking.
  • Loading branch information
jnthn committed Feb 1, 2013
1 parent fd4f51a commit ed7e829
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/pmc/stable.pmc
Expand Up @@ -64,6 +64,26 @@ pmclass STable manual_attrs dynpmc group nqp {
/* Mark the boolification spec, if needed. */
if (st->boolification_spec && !PMC_IS_NULL(st->boolification_spec->method))
Parrot_gc_mark_PMC_alive(interp, st->boolification_spec->method);

/* Mark the container spec, if needed. */
if (st->container_spec) {
if (!PMC_IS_NULL(st->container_spec->value_slot.class_handle))
Parrot_gc_mark_PMC_alive(interp, st->container_spec->value_slot.class_handle);
if (!STRING_IS_NULL(st->container_spec->value_slot.attr_name))
Parrot_gc_mark_STRING_alive(interp, st->container_spec->value_slot.attr_name);
if (!PMC_IS_NULL(st->container_spec->fetch_method))
Parrot_gc_mark_PMC_alive(interp, st->container_spec->fetch_method);
}

/* Mark the invocation spec, if needed. */
if (st->invocation_spec) {
if (!PMC_IS_NULL(st->invocation_spec->value_slot.class_handle))
Parrot_gc_mark_PMC_alive(interp, st->invocation_spec->value_slot.class_handle);
if (!STRING_IS_NULL(st->invocation_spec->value_slot.attr_name))
Parrot_gc_mark_STRING_alive(interp, st->invocation_spec->value_slot.attr_name);
if (!PMC_IS_NULL(st->invocation_spec->invocation_handler))
Parrot_gc_mark_PMC_alive(interp, st->invocation_spec->invocation_handler);
}

/* If we have one, mark the Parrot v-table mapping. */
if (st->parrot_vtable_mapping)
Expand Down

0 comments on commit ed7e829

Please sign in to comment.