[svn:parrot] r41034 - in branches/kill_parrot_cont: config/inter include/parrot src src/call src/gc src/ops src/pmc
bacek at svn.parrot.org
bacek at svn.parrot.org
Sun Sep 6 04:07:04 UTC 2009
Author: bacek
Date: Sun Sep 6 04:06:59 2009
New Revision: 41034
URL: https://trac.parrot.org/parrot/changeset/41034
Log:
Merge trunk into branch.
Conflicts:
include/parrot/context.h
include/parrot/register.h
include/parrot/sub.h
lib/Parrot/Pmc2c/PCCMETHOD.pm
src/call/pcc.c
src/debug.c
src/gc/alloc_register.c
src/ops/core.ops
src/ops/pic.ops
src/pic.c
src/pmc/context.pmc
src/pmc/continuation.pmc
src/pmc/coroutine.pmc
src/pmc/exception.pmc
src/pmc/exceptionhandler.pmc
src/pmc/retcontinuation.pmc
src/sub.c
Modified:
branches/kill_parrot_cont/config/inter/libparrot.pm
branches/kill_parrot_cont/include/parrot/context.h
branches/kill_parrot_cont/include/parrot/register.h
branches/kill_parrot_cont/include/parrot/sub.h
branches/kill_parrot_cont/src/call/pcc.c
branches/kill_parrot_cont/src/debug.c
branches/kill_parrot_cont/src/gc/alloc_register.c
branches/kill_parrot_cont/src/hll.c
branches/kill_parrot_cont/src/ops/core.ops
branches/kill_parrot_cont/src/ops/pic.ops
branches/kill_parrot_cont/src/pic.c
branches/kill_parrot_cont/src/pmc/context.pmc
branches/kill_parrot_cont/src/pmc/exception.pmc
branches/kill_parrot_cont/src/pmc/exceptionhandler.pmc
branches/kill_parrot_cont/src/sub.c
Modified: branches/kill_parrot_cont/config/inter/libparrot.pm
==============================================================================
--- branches/kill_parrot_cont/config/inter/libparrot.pm Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/config/inter/libparrot.pm Sun Sep 6 04:06:59 2009 (r41034)
@@ -56,6 +56,9 @@
if ($^O eq 'cygwin') {
@libs = ('libparrot.dll.a');
}
+ if ($^O eq 'darwin'){
+ @libs = qw/libparrot.dylib libparrot.a/;
+ }
if (defined $ENV{LD_LIBRARY_PATH}) {
push @libpaths, (split /:/, $ENV{LD_LIBRARY_PATH});
}
Modified: branches/kill_parrot_cont/include/parrot/context.h
==============================================================================
--- branches/kill_parrot_cont/include/parrot/context.h Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/include/parrot/context.h Sun Sep 6 04:06:59 2009 (r41034)
@@ -27,7 +27,7 @@
Regs_ps bp_ps; /* pointers to PMC & STR */
/* end common header */
- INTVAL n_regs_used[4]; /* INSP in PBC points to Sub */
+ UINTVAL n_regs_used[4]; /* INSP in PBC points to Sub */
PMC *lex_pad; /* LexPad PMC */
PMC *outer_ctx; /* outer context, if a closure */
Modified: branches/kill_parrot_cont/include/parrot/register.h
==============================================================================
--- branches/kill_parrot_cont/include/parrot/register.h Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/include/parrot/register.h Sun Sep 6 04:06:59 2009 (r41034)
@@ -80,7 +80,7 @@
PARROT_CANNOT_RETURN_NULL
FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP,
ARGIN(PMC *ctx),
- INTVAL idx)
+ UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -88,13 +88,13 @@
PARROT_CANNOT_RETURN_NULL
INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP,
ARGIN(PMC *ctx),
- INTVAL idx)
+ UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -111,7 +111,7 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-int Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type)
+UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -119,7 +119,7 @@
PARROT_CANNOT_RETURN_NULL
STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP,
ARGIN(PMC *ctx),
- INTVAL idx)
+ UINTVAL idx)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
Modified: branches/kill_parrot_cont/include/parrot/sub.h
==============================================================================
--- branches/kill_parrot_cont/include/parrot/sub.h Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/include/parrot/sub.h Sun Sep 6 04:06:59 2009 (r41034)
@@ -241,6 +241,15 @@
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
+PMC* Parrot_find_dynamic_pad(PARROT_INTERP,
+ ARGIN(STRING *lex_name),
+ ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
PMC* Parrot_find_pad(PARROT_INTERP,
ARGIN(STRING *lex_name),
ARGIN(PMC *ctx))
Modified: branches/kill_parrot_cont/src/call/pcc.c
==============================================================================
--- branches/kill_parrot_cont/src/call/pcc.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/call/pcc.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -1194,22 +1194,28 @@
for (; key; key = VTABLE_shift_pmc(interp, key)) {
/* register keys have to be cloned */
if (PObj_get_FLAGS(key) & KEY_register_FLAG) {
+ INTVAL n_regs_used[4];
Regs_ni bp;
Regs_ps bp_ps;
/* clone sets key values according to refered register items */
bp = *Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp));
bp_ps = *Parrot_pcc_get_regs_ps(interp, CURRENT_CONTEXT(interp));
+ memcpy(n_regs_used, CONTEXT(interp)->n_regs_used, 4 * sizeof (INTVAL));
Parrot_pcc_set_regs_ni(interp, CURRENT_CONTEXT(interp),
Parrot_pcc_get_regs_ni(interp, st->src.ctx));
Parrot_pcc_set_regs_ps(interp, CURRENT_CONTEXT(interp),
Parrot_pcc_get_regs_ps(interp, st->src.ctx));
+ memcpy(CONTEXT(interp)->n_regs_used,
+ Parrot_pcc_get_context_struct(interp, st->src.ctx),
+ 4 * sizeof (INTVAL));
UVal_pmc(st->val) = VTABLE_clone(interp, key);
Parrot_pcc_set_regs_ni(interp, CURRENT_CONTEXT(interp), &bp);
Parrot_pcc_set_regs_ps(interp, CURRENT_CONTEXT(interp), &bp_ps);
+ memcpy(CONTEXT(interp)->n_regs_used, n_regs_used, 4 * sizeof (INTVAL));
return;
}
@@ -2869,8 +2875,7 @@
interp->current_object = pmc;
interp->current_cont = NEED_CONTINUATION;
Parrot_pcc_set_continuation(interp, ctx, ret_cont);
- PARROT_CONTINUATION(ret_cont)->from_ctx = ctx;
-
+ PMC_cont(ret_cont)->from_ctx = ctx;
pccinvoke_meth = VTABLE_find_method(interp, pmc, method_name);
if (PMC_IS_NULL(pccinvoke_meth))
@@ -3011,10 +3016,9 @@
else {
interp->current_object = PMCNULL;
}
-
interp->current_cont = NEED_CONTINUATION;
Parrot_pcc_set_continuation(interp, ctx, ret_cont);
- PARROT_CONTINUATION(ret_cont)->from_ctx = ctx;
+ PMC_cont(ret_cont)->from_ctx = ctx;
/* Invoke the function */
dest = VTABLE_invoke(interp, sub_obj, NULL);
Modified: branches/kill_parrot_cont/src/debug.c
==============================================================================
--- branches/kill_parrot_cont/src/debug.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/debug.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -3211,14 +3211,29 @@
switch (reg_type) {
case 'I':
+ if (register_num >= Parrot_pcc_get_regs_used(interp,
+ CURRENT_CONTEXT(interp), REGNO_INT)) {
+ fprintf(stderr, "I%ld = no such register\n", register_num);
+ return;
+ }
t = REGNO_INT;
IREG(register_num) = get_ulong(&command, 0);
break;
case 'N':
+ if (register_num >= Parrot_pcc_get_regs_used(interp,
+ CURRENT_CONTEXT(interp), REGNO_NUM)) {
+ fprintf(stderr, "N%ld = no such register\n", register_num);
+ return;
+ }
t = REGNO_NUM;
NREG(register_num) = atof(command);
break;
case 'S':
+ if (register_num >= Parrot_pcc_get_regs_used(interp,
+ CURRENT_CONTEXT(interp), REGNO_NUM)) {
+ fprintf(stderr, "S%ld = no such register\n", register_num);
+ return;
+ }
t = REGNO_STR;
SREG(register_num) = Parrot_str_new(interp, command, strlen(command));
break;
@@ -3556,11 +3571,11 @@
break;
/* recursion detection */
- if (!PMC_IS_NULL(old) && PARROT_CONTINUATION(old) &&
- Parrot_pcc_get_pc(interp, PARROT_CONTINUATION(old)->to_ctx) ==
- Parrot_pcc_get_pc(interp, PARROT_CONTINUATION(sub)->to_ctx) &&
- Parrot_pcc_get_sub(interp, PARROT_CONTINUATION(old)->to_ctx) ==
- Parrot_pcc_get_sub(interp, PARROT_CONTINUATION(sub)->to_ctx)) {
+ if (!PMC_IS_NULL(old) && PMC_cont(old) &&
+ Parrot_pcc_get_pc(interp, PMC_cont(old)->to_ctx) ==
+ Parrot_pcc_get_pc(interp, PMC_cont(sub)->to_ctx) &&
+ Parrot_pcc_get_sub(interp, PMC_cont(old)->to_ctx) ==
+ Parrot_pcc_get_sub(interp, PMC_cont(sub)->to_ctx)) {
++rec_level;
}
else if (rec_level != 0) {
@@ -3634,7 +3649,7 @@
ASSERT_ARGS(GDB_print_reg)
char * string;
- if (n >= 0 && n < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), t)) {
+ if (n >= 0 && (UINTVAL)n < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), t)) {
switch (t) {
case REGNO_INT:
return Parrot_str_from_int(interp, IREG(n))->strstart;
Modified: branches/kill_parrot_cont/src/gc/alloc_register.c
==============================================================================
--- branches/kill_parrot_cont/src/gc/alloc_register.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/gc/alloc_register.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -156,7 +156,7 @@
clear_regs(PARROT_INTERP, ARGMOD(PMC *pmcctx))
{
ASSERT_ARGS(clear_regs)
- int i;
+ UINTVAL i;
Parrot_Context *ctx = Parrot_pcc_get_context_struct(interp, pmcctx);
/* NULL out registers - P/S have to be NULL for GC
@@ -210,6 +210,7 @@
ctx->current_object = NULL;
ctx->handlers = PMCNULL;
ctx->caller_ctx = NULL;
+ ctx->pred_offset = 0;
if (old) {
/* some items should better be COW copied */
@@ -404,7 +405,7 @@
Parrot_clear_i(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_i)
- int i;
+ UINTVAL i;
for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT); ++i)
REG_INT(interp, i) = 0;
}
@@ -425,7 +426,7 @@
Parrot_clear_s(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_s)
- int i;
+ UINTVAL i;
for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR); ++i)
REG_STR(interp, i) = NULL;
}
@@ -446,7 +447,7 @@
Parrot_clear_p(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_p)
- int i;
+ UINTVAL i;
for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC); ++i)
REG_PMC(interp, i) = PMCNULL;
}
@@ -467,14 +468,15 @@
Parrot_clear_n(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_n)
- int i;
+ UINTVAL i;
for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM); ++i)
REG_NUM(interp, i) = 0.0;
}
/*
-=item C<INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, PMC *ctx, INTVAL idx)>
+=item C<INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, PMC *ctx, UINTVAL
+idx)>
Get pointer to INTVAL register.
@@ -485,15 +487,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
INTVAL *
-Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_INTVAL_reg)
+ PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_INT) > idx);
return &(Parrot_pcc_get_context_struct(interp, ctx)->bp.regs_i[idx]);
}
/*
-=item C<FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, PMC *ctx, INTVAL
+=item C<FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, PMC *ctx, UINTVAL
idx)>
Get pointer to FLOATVAL register.
@@ -505,15 +508,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
FLOATVAL *
-Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_FLOATVAL_reg)
+ PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_NUM) > idx);
return &(Parrot_pcc_get_context_struct(interp, ctx)->bp.regs_n[-1L - idx]);
}
/*
-=item C<STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP, PMC *ctx, INTVAL
+=item C<STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP, PMC *ctx, UINTVAL
idx)>
Get pointer to STRING register.
@@ -525,15 +529,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING **
-Parrot_pcc_get_STRING_reg(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_STRING_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_STRING_reg)
+ PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_STR) > idx);
return &(Parrot_pcc_get_context_struct(interp, ctx)->bp_ps.regs_s[idx]);
}
/*
-=item C<PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, PMC *ctx, INTVAL idx)>
+=item C<PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, PMC *ctx, UINTVAL idx)>
Get pointer to PMC register.
@@ -544,15 +549,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC **
-Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_PMC_reg)
+ PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_PMC) > idx);
return &(Parrot_pcc_get_context_struct(interp, ctx)->bp_ps.regs_p[-1L - idx]);
}
/*
-=item C<int Parrot_pcc_get_regs_used(PARROT_INTERP, PMC *ctx, int type)>
+=item C<UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, PMC *ctx, int type)>
Return number of used registers of particular type.
@@ -560,7 +566,7 @@
*/
PARROT_EXPORT
-int
+UINTVAL
Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type)
{
ASSERT_ARGS(Parrot_pcc_get_regs_used)
Modified: branches/kill_parrot_cont/src/hll.c
==============================================================================
--- branches/kill_parrot_cont/src/hll.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/hll.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -554,6 +554,7 @@
=cut
+
*/
/*
Modified: branches/kill_parrot_cont/src/ops/core.ops
==============================================================================
--- branches/kill_parrot_cont/src/ops/core.ops Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/ops/core.ops Sun Sep 6 04:06:59 2009 (r41034)
@@ -579,7 +579,7 @@
if (PARROT_CONTINUATION(ccont)->address) {
/* Call is from runops_fromc */
- caller_ctx = PARROT_CONTINUATION(ccont)->to_ctx;
+ caller_ctx = PMC_cont(ccont)->to_ctx;
if (PMC_IS_NULL(caller_ctx)) {
/* there is no point calling Parrot_ex_throw_..., because
PDB_backtrace can't deal with a missing to_ctx either. */
@@ -618,7 +618,7 @@
PMC *sig = NULL;
if (cc && PARROT_CONTINUATION(cc)->to_ctx) {
/* caller context has results */
- opcode_t * const results = Parrot_pcc_get_results(interp, PARROT_CONTINUATION(cc)->to_ctx);
+ opcode_t * const results = Parrot_pcc_get_results(interp, PMC_cont(cc)->to_ctx);
if (results) {
/* get results PMC index and get PMC. */
sig = PF_CONST(PARROT_CONTINUATION(cc)->seg, results[1])->u.key;
Modified: branches/kill_parrot_cont/src/ops/pic.ops
==============================================================================
--- branches/kill_parrot_cont/src/ops/pic.ops Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/ops/pic.ops Sun Sep 6 04:06:59 2009 (r41034)
@@ -190,8 +190,7 @@
ctx = CURRENT_CONTEXT(interp);
mic = (Parrot_MIC *) cur_opcode[1];
ccont = Parrot_pcc_get_continuation(interp, ctx);
- cc = PARROT_CONTINUATION(ccont);
-
+ cc = PMC_cont(ccont);
if (!cc->address) {
interp->current_returns = CUR_OPCODE;
n = VTABLE_get_integer(interp, mic->m.sig);
Modified: branches/kill_parrot_cont/src/pic.c
==============================================================================
--- branches/kill_parrot_cont/src/pic.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/pic.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -705,9 +705,9 @@
if (op == PARROT_OP_set_returns_pc) {
PMC * const ccont = Parrot_pcc_get_continuation(interp, ctx);
- if (!PARROT_CONTINUATION(ccont)->address)
+ if (!PMC_cont(ccont)->address)
return 0;
- caller_ctx = PARROT_CONTINUATION(ccont)->to_ctx;
+ caller_ctx = PMC_cont(ccont)->to_ctx;
args = Parrot_pcc_get_results(interp, caller_ctx);
}
else {
Modified: branches/kill_parrot_cont/src/pmc/context.pmc
==============================================================================
--- branches/kill_parrot_cont/src/pmc/context.pmc Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/pmc/context.pmc Sun Sep 6 04:06:59 2009 (r41034)
@@ -53,8 +53,8 @@
VTABLE void mark()
{
Parrot_Context * const ctx = PMC_data_typed(SELF, Parrot_Context*);
- PObj *obj;
- int i;
+ PObj *obj;
+ UINTVAL i;
/* If Context wasn't initialised just return */
if (!ctx)
Modified: branches/kill_parrot_cont/src/pmc/exception.pmc
==============================================================================
--- branches/kill_parrot_cont/src/pmc/exception.pmc Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/pmc/exception.pmc Sun Sep 6 04:06:59 2009 (r41034)
@@ -641,10 +641,11 @@
SET_ATTR_handler_iter(interp, SELF, value);
}
else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "thrower"))) {
- /* Ensure it's a ret cont, and extract the from_ctx. */
+ /* Ensure it's a ret cont, and extract the from_ctx.
+ * XXX TT#596 - when we have Context PMCs, just take and set that. */
if (!PMC_IS_NULL(value) && VTABLE_isa(interp, value, CONST_STRING(interp, "Continuation"))) {
- PMC *ctx = PARROT_CONTINUATION(value)->from_ctx;
- if (!PMC_IS_NULL(ctx))
+ PMC *ctx = PMC_cont(value)->from_ctx;
+ if (!PMC_IS_NULL(ctx)) {
SET_ATTR_thrower(interp, SELF, ctx);
}
}
Modified: branches/kill_parrot_cont/src/pmc/exceptionhandler.pmc
==============================================================================
--- branches/kill_parrot_cont/src/pmc/exceptionhandler.pmc Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/pmc/exceptionhandler.pmc Sun Sep 6 04:06:59 2009 (r41034)
@@ -53,7 +53,6 @@
* of an "earlier" context, which is contained in the interpreter's
* context - the stacks can only be deeper in the interpreter - so no
* mark of context is needed */
- PObj_custom_mark_SET(SELF);
PObj_custom_mark_destroy_SETALL(SELF);
}
/*
Modified: branches/kill_parrot_cont/src/sub.c
==============================================================================
--- branches/kill_parrot_cont/src/sub.c Sun Sep 6 02:49:32 2009 (r41033)
+++ branches/kill_parrot_cont/src/sub.c Sun Sep 6 04:06:59 2009 (r41034)
@@ -47,8 +47,6 @@
}
-/*
-
/*
More information about the parrot-commits
mailing list