[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