[svn:parrot] r41449 - in trunk/src: . dynpmc gc io pmc
bacek at svn.parrot.org
bacek at svn.parrot.org
Thu Sep 24 21:43:17 UTC 2009
Author: bacek
Date: Thu Sep 24 21:43:16 2009
New Revision: 41449
URL: https://trac.parrot.org/parrot/changeset/41449
Log:
[core] Use more Parrot_gc_mark_PMC_alive function.
Modified:
trunk/src/dynpmc/dynlexpad.pmc
trunk/src/gc/gc_ms.c
trunk/src/gc/mark_sweep.c
trunk/src/io/core.c
trunk/src/key.c
trunk/src/oo.c
trunk/src/packfile.c
trunk/src/pmc/capture.pmc
trunk/src/pmc/context.pmc
trunk/src/vtables.c
Modified: trunk/src/dynpmc/dynlexpad.pmc
==============================================================================
--- trunk/src/dynpmc/dynlexpad.pmc Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/dynpmc/dynlexpad.pmc Thu Sep 24 21:43:16 2009 (r41449)
@@ -200,8 +200,7 @@
VTABLE void mark() {
PMC *std_pad = PARROT_DYNLEXPAD(SELF)->init;
- if (std_pad)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)std_pad);
+ Parrot_gc_mark_PMC_alive(INTERP, std_pad);
if (PARROT_DYNLEXPAD(SELF)->hash)
parrot_mark_hash(interp, PARROT_DYNLEXPAD(SELF)->hash);
}
Modified: trunk/src/gc/gc_ms.c
==============================================================================
--- trunk/src/gc/gc_ms.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/gc/gc_ms.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -222,7 +222,7 @@
/* keep the scheduler and its kids alive for Task-like PMCs to destroy
* themselves; run a sweep to collect them */
if (interp->scheduler) {
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->scheduler);
+ Parrot_gc_mark_PMC_alive(interp, interp->scheduler);
VTABLE_mark(interp, interp->scheduler);
Parrot_gc_sweep_pool(interp, interp->mem_pools->pmc_pool);
}
Modified: trunk/src/gc/mark_sweep.c
==============================================================================
--- trunk/src/gc/mark_sweep.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/gc/mark_sweep.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -188,7 +188,7 @@
}
/* mark the list of iglobals */
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->iglobals);
+ Parrot_gc_mark_PMC_alive(interp, interp->iglobals);
/* mark the current continuation */
obj = (PObj *)interp->current_cont;
@@ -196,20 +196,19 @@
Parrot_gc_mark_PObj_alive(interp, obj);
/* mark the current context. */
- Parrot_gc_mark_PObj_alive(interp, (PObj*)CURRENT_CONTEXT(interp));
+ Parrot_gc_mark_PMC_alive(interp, CURRENT_CONTEXT(interp));
/* mark the dynamic environment. */
- Parrot_gc_mark_PObj_alive(interp, (PObj*)interp->dynamic_env);
+ Parrot_gc_mark_PMC_alive(interp, interp->dynamic_env);
/* mark the vtables: the data, Class PMCs, etc. */
mark_vtables(interp);
/* mark the root_namespace */
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->root_namespace);
+ Parrot_gc_mark_PMC_alive(interp, interp->root_namespace);
/* mark the concurrency scheduler */
- if (interp->scheduler)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->scheduler);
+ Parrot_gc_mark_PMC_alive(interp, interp->scheduler);
/* s. packfile.c */
mark_const_subs(interp);
@@ -218,15 +217,15 @@
mark_object_cache(interp);
/* Now mark the class hash */
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->class_hash);
+ Parrot_gc_mark_PMC_alive(interp, interp->class_hash);
/* Now mark the HLL stuff */
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->HLL_info);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->HLL_namespace);
+ Parrot_gc_mark_PMC_alive(interp, interp->HLL_info);
+ Parrot_gc_mark_PMC_alive(interp, interp->HLL_namespace);
/* Mark the registry */
PARROT_ASSERT(interp->gc_registry);
- Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->gc_registry);
+ Parrot_gc_mark_PMC_alive(interp, interp->gc_registry);
/* Mark the MMD cache. */
if (interp->op_mmd_cache)
@@ -546,10 +545,9 @@
PObj_high_priority_gc_CLEAR(current);
/* mark properties */
- if (PMC_metadata(current))
- Parrot_gc_mark_PObj_alive(interp, (PObj *)PMC_metadata(current));
+ Parrot_gc_mark_PMC_alive(interp, PMC_metadata(current));
- if (PObj_custom_mark_TEST(current)) {
+ if (PObj_custom_mark_TEST(current)) {
PARROT_ASSERT(!PObj_on_free_list_TEST(current));
VTABLE_mark(interp, current);
}
Modified: trunk/src/io/core.c
==============================================================================
--- trunk/src/io/core.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/io/core.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -125,9 +125,7 @@
* to be kept alive AFAIK -leo
*/
for (i = 0; i < 3; i++) {
- if (table[i]) {
- Parrot_gc_mark_PObj_alive(interp, (PObj *)table[i]);
- }
+ Parrot_gc_mark_PMC_alive(interp, table[i]);
}
}
Modified: trunk/src/key.c
==============================================================================
--- trunk/src/key.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/key.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -612,17 +612,13 @@
if (flags == KEY_string_FLAG) {
STRING *str_key;
GETATTR_Key_str_key(interp, key, str_key);
-
- /* XXX str_key can be NULL from GETATTR_Key_str_key, */
- /* so shouldn't be marked. */
- Parrot_gc_mark_PObj_alive(interp, (PObj *)str_key);
+ Parrot_gc_mark_STRING_alive(interp, str_key);
}
/* Mark next key */
if ((flags == KEY_string_FLAG) || (flags == KEY_pmc_FLAG)) {
GETATTR_Key_next_key(interp, key, next_key);
- if (next_key)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)next_key);
+ Parrot_gc_mark_PMC_alive(interp, next_key);
}
}
Modified: trunk/src/oo.c
==============================================================================
--- trunk/src/oo.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/oo.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -743,7 +743,7 @@
for (entry = 0; entry < TBL_SIZE; ++entry) {
Meth_cache_entry *e = mc->idx[type][entry];
while (e) {
- Parrot_gc_mark_PObj_alive(interp, (PObj *)e->pmc);
+ Parrot_gc_mark_PMC_alive(interp, e->pmc);
e = e->next;
}
}
Modified: trunk/src/packfile.c
==============================================================================
--- trunk/src/packfile.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/packfile.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -805,13 +805,11 @@
case PFC_PMC:
case PFC_KEY:
pmc = constants[i]->u.key;
- if (pmc)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)pmc);
+ Parrot_gc_mark_PMC_alive(interp, pmc);
break;
case PFC_STRING:
string = constants[i]->u.string;
- if (string)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)string);
+ Parrot_gc_mark_STRING_alive(interp, string);
break;
default:
/* Do nothing. */
Modified: trunk/src/pmc/capture.pmc
==============================================================================
--- trunk/src/pmc/capture.pmc Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/pmc/capture.pmc Thu Sep 24 21:43:16 2009 (r41449)
@@ -507,8 +507,7 @@
return;
for (i = PARROT_CAPTURE(SELF)->data_size - 1; i >= 0; --i)
- if (data[i])
- Parrot_gc_mark_PObj_alive(interp, (PObj *)data[i]);
+ Parrot_gc_mark_PMC_alive(interp, data[i]);
}
/*
Modified: trunk/src/pmc/context.pmc
==============================================================================
--- trunk/src/pmc/context.pmc Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/pmc/context.pmc Thu Sep 24 21:43:16 2009 (r41449)
@@ -60,41 +60,15 @@
if (!ctx)
return;
- obj = (PObj *)ctx->caller_ctx;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->lex_pad;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->outer_ctx;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->current_sub;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->handlers;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->current_cont;
- if (obj && !PObj_live_TEST(obj))
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->current_object;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->current_namespace;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
-
- obj = (PObj *)ctx->results_signature;
- if (obj)
- Parrot_gc_mark_PObj_alive(interp, obj);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->caller_ctx);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->lex_pad);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->outer_ctx);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->current_sub);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->handlers);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->current_cont);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->current_object);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->current_namespace);
+ Parrot_gc_mark_PMC_alive(INTERP, ctx->results_signature);
if (!ctx->n_regs_used)
return;
Modified: trunk/src/vtables.c
==============================================================================
--- trunk/src/vtables.c Thu Sep 24 20:54:19 2009 (r41448)
+++ trunk/src/vtables.c Thu Sep 24 21:43:16 2009 (r41449)
@@ -212,16 +212,11 @@
if (!vtable)
continue;
- if (vtable->mro)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)vtable->mro);
- if (vtable->_namespace)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)vtable->_namespace);
- if (vtable->whoami)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)vtable->whoami);
- if (vtable->provides_str)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)vtable->provides_str);
- if (vtable->pmc_class)
- Parrot_gc_mark_PObj_alive(interp, (PObj *)vtable->pmc_class);
+ Parrot_gc_mark_PMC_alive(interp, vtable->mro);
+ Parrot_gc_mark_PMC_alive(interp, vtable->_namespace);
+ Parrot_gc_mark_STRING_alive(interp, vtable->whoami);
+ Parrot_gc_mark_STRING_alive(interp, vtable->provides_str);
+ Parrot_gc_mark_PMC_alive(interp, vtable->pmc_class);
}
}
More information about the parrot-commits
mailing list