[svn:parrot] r40776 - in branches/context_pmc3: include/parrot src
bacek at svn.parrot.org
bacek at svn.parrot.org
Tue Aug 25 10:35:30 UTC 2009
Author: bacek
Date: Tue Aug 25 10:35:29 2009
New Revision: 40776
URL: https://trac.parrot.org/parrot/changeset/40776
Log:
[core] Add lex_pad and outer_ctx accessors
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 Tue Aug 25 10:35:05 2009 (r40775)
+++ branches/context_pmc3/include/parrot/context.h Tue Aug 25 10:35:29 2009 (r40776)
@@ -89,11 +89,21 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PMC* Parrot_cx_get_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
PMC* Parrot_cx_get_namespace(PARROT_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PMC* Parrot_cx_get_outer_ctx(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)
@@ -126,12 +136,28 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+void Parrot_cx_set_lex_pad(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *lex_pad))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_EXPORT
void Parrot_cx_set_namespace(PARROT_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *_namespace))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_EXPORT
+void Parrot_cx_set_outer_ctx(PARROT_INTERP,
+ ARGIN(PMC *ctx),
+ ARGIN(PMC *outer_ctx))
+ __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)
@@ -143,9 +169,15 @@
|| 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_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx)
#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_outer_ctx __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)
@@ -162,9 +194,17 @@
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(ctx) \
|| PARROT_ASSERT_ARG(caller_ctx)
+#define ASSERT_ARGS_Parrot_cx_set_lex_pad __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(lex_pad)
#define ASSERT_ARGS_Parrot_cx_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
|| PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_cx_set_outer_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(ctx) \
+ || PARROT_ASSERT_ARG(outer_ctx)
/* 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 Tue Aug 25 10:35:05 2009 (r40775)
+++ branches/context_pmc3/src/context.c Tue Aug 25 10:35:29 2009 (r40776)
@@ -212,6 +212,84 @@
/*
+=item C<PMC* Parrot_cx_get_outer_ctx(PARROT_INTERP, PMC *ctx)>
+
+Get outer Context.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PMC*
+Parrot_cx_get_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx))
+{
+ ASSERT_ARGS(Parrot_cx_get_outer_ctx)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ return c->outer_ctx;
+}
+
+
+/*
+
+=item C<void Parrot_cx_set_outer_ctx(PARROT_INTERP, PMC *ctx, PMC *outer_ctx)>
+
+Set outer Context.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_cx_set_outer_ctx(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
+{
+ ASSERT_ARGS(Parrot_cx_set_outer_ctx)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ c->outer_ctx = outer_ctx;
+}
+
+/*
+
+=item C<PMC* Parrot_cx_get_lex_pad(PARROT_INTERP, PMC *ctx)>
+
+Get LexPad.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PMC*
+Parrot_cx_get_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx))
+{
+ ASSERT_ARGS(Parrot_cx_get_lex_pad)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ return c->lex_pad;
+}
+
+
+/*
+
+=item C<void Parrot_cx_set_lex_pad(PARROT_INTERP, PMC *ctx, PMC *lex_pad)>
+
+Set LexPad.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_cx_set_lex_pad(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
+{
+ ASSERT_ARGS(Parrot_cx_set_lex_pad)
+ Parrot_Context *c = Parrot_cx_get_context(interp, ctx);
+ c->lex_pad = lex_pad;
+}
+
+/*
+
=item C<PMC* Parrot_cx_get_namespace(PARROT_INTERP, PMC *ctx)>
Get namespace of Context.
More information about the parrot-commits
mailing list