[svn:parrot] r40765 - in branches/context_pmc3: include/parrot src
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Aug 24 22:11:26 UTC 2009
Author: bacek
Date: Mon Aug 24 22:11:24 2009
New Revision: 40765
URL: https://trac.parrot.org/parrot/changeset/40765
Log:
[core] Add current_namespace accessor to Context
Modified:
branches/context_pmc3/include/parrot/context.h
branches/context_pmc3/src/context.c
Modified: branches/context_pmc3/include/parrot/context.h
==============================================================================
--- branches/context_pmc3/include/parrot/context.h Mon Aug 24 12:11:02 2009 (r40764)
+++ branches/context_pmc3/include/parrot/context.h Mon Aug 24 22:11:24 2009 (r40765)
@@ -90,6 +90,11 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PMC* Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PMC* Parrot_cx_get_pmc_constant(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
__attribute__nonnull__(1)
@@ -121,6 +126,14 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
+PARROT_EXPORT
+void Parrot_cx_set_namespace(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *_namespace))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
#define ASSERT_ARGS_Parrot_cx_constants __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(ctx)
@@ -132,6 +145,9 @@
|| PARROT_ASSERT_ARG(ctx)
#define ASSERT_ARGS_Parrot_cx_get_context __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_Parrot_cx_get_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
#define ASSERT_ARGS_Parrot_cx_get_pmc_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(ctx)
@@ -148,6 +164,10 @@
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(ctx) \
|| PARROT_ASSERT_ARG(caller_ctx)
+#define ASSERT_ARGS_Parrot_cx_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(_namespace)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/context.c */
Modified: branches/context_pmc3/src/context.c
==============================================================================
--- branches/context_pmc3/src/context.c Mon Aug 24 12:11:02 2009 (r40764)
+++ branches/context_pmc3/src/context.c Mon Aug 24 22:11:24 2009 (r40765)
@@ -210,6 +210,45 @@
c->caller_ctx = caller_ctx;
}
+/*
+
+=item C<PMC* Parrot_cx_get_namespace(PARROT_INTERP, PMC *ctx)>
+
+Get namespace of Context.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PMC*
+Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
+{
+ ASSERT_ARGS(Parrot_cx_dec_recursion_depth)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ return c->current_namespace;
+}
+
+
+/*
+
+=item C<void Parrot_cx_set_namespace(PARROT_INTERP, PMC *ctx, PMC *_namespace)>
+
+Set caller Context.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_cx_set_namespace(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *_namespace))
+{
+ ASSERT_ARGS(Parrot_cx_dec_recursion_depth)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ c->current_namespace = _namespace;
+}
+
/*
More information about the parrot-commits
mailing list