[svn:parrot] r41628 - branches/pcc_reapply/src/pmc
whiteknight at svn.parrot.org
whiteknight at svn.parrot.org
Sat Oct 3 02:25:09 UTC 2009
Author: whiteknight
Date: Sat Oct 3 02:25:07 2009
New Revision: 41628
URL: https://trac.parrot.org/parrot/changeset/41628
Log:
[pcc] fix some of the mark logic in Capture PMC to just make sure that everything that I think should be getting marked is actually getting marked
Modified:
branches/pcc_reapply/src/pmc/capture.pmc
Modified: branches/pcc_reapply/src/pmc/capture.pmc
==============================================================================
--- branches/pcc_reapply/src/pmc/capture.pmc Sat Oct 3 01:49:52 2009 (r41627)
+++ branches/pcc_reapply/src/pmc/capture.pmc Sat Oct 3 02:25:07 2009 (r41628)
@@ -18,7 +18,6 @@
*/
-#define CAPTURE_DATA_SIZE 2
#define CAPTURE_array_CREATE(i, obj) \
if (!PARROT_CAPTURE(obj)->array) \
PARROT_CAPTURE(obj)->array = pmc_new((i), enum_class_ResizablePMCArray);
@@ -29,7 +28,6 @@
pmclass Capture auto_attrs {
ATTR PMC *array;
ATTR PMC *hash;
- ATTR INTVAL data_size;
/*
@@ -42,9 +40,6 @@
*/
VTABLE void init() {
- Parrot_Capture_attributes *capture =
- (Parrot_Capture_attributes *) PMC_data(SELF);
- capture->data_size = CAPTURE_DATA_SIZE;
PObj_custom_mark_SET(SELF);
}
@@ -617,14 +612,11 @@
*/
VTABLE void mark() {
- PMC ** const data = PMC_data_typed(SELF, PMC **);
- INTVAL i;
-
+ Parrot_Capture_attributes * const data = PARROT_CAPTURE(SELF);
if (!data)
return;
-
- for (i = PARROT_CAPTURE(SELF)->data_size - 1; i >= 0; --i)
- Parrot_gc_mark_PMC_alive(interp, data[i]);
+ Parrot_gc_mark_PMC_alive(INTERP, data->array);
+ Parrot_gc_mark_PMC_alive(INTERP, data->hash);
}
/*
More information about the parrot-commits
mailing list