[svn:parrot] r37186 - in trunk: include/parrot src
NotFound at svn.parrot.org
NotFound at svn.parrot.org
Sun Mar 8 00:18:26 UTC 2009
Author: NotFound
Date: Sun Mar 8 00:18:26 2009
New Revision: 37186
URL: https://trac.parrot.org/parrot/changeset/37186
Log:
[core] add Parrot_PMC_push_pmcval and Parrot_PMC_newclass to the extend API
Modified:
trunk/include/parrot/extend.h
trunk/src/extend.c
Modified: trunk/include/parrot/extend.h
==============================================================================
--- trunk/include/parrot/extend.h Sun Mar 8 00:11:26 2009 (r37185)
+++ trunk/include/parrot/extend.h Sun Mar 8 00:18:26 2009 (r37186)
@@ -267,6 +267,10 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+Parrot_PMC Parrot_PMC_newclass(PARROT_INTERP, Parrot_PMC classtype)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
Parrot_PMC Parrot_PMC_null(void);
PARROT_EXPORT
@@ -280,6 +284,10 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+void Parrot_PMC_push_pmcval(PARROT_INTERP, Parrot_PMC pmc, Parrot_PMC value)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
void Parrot_PMC_set_cstring(PARROT_INTERP,
Parrot_PMC pmc,
ARGIN_NULLOK(const char *value))
@@ -503,11 +511,15 @@
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_PMC_new __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_Parrot_PMC_newclass __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_PMC_null __attribute__unused__ int _ASSERT_ARGS_CHECK = 0
#define ASSERT_ARGS_Parrot_PMC_push_intval __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_PMC_push_numval __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_Parrot_PMC_push_pmcval __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_PMC_set_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_PMC_set_cstring_intkey __attribute__unused__ int _ASSERT_ARGS_CHECK = \
Modified: trunk/src/extend.c
==============================================================================
--- trunk/src/extend.c Sun Mar 8 00:11:26 2009 (r37185)
+++ trunk/src/extend.c Sun Mar 8 00:18:26 2009 (r37186)
@@ -837,6 +837,26 @@
/*
+=item C<void Parrot_PMC_push_pmcval>
+
+Push the passed-in Parrot PMC onto the passed in PMC
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_PMC_push_pmcval(PARROT_INTERP, Parrot_PMC pmc, Parrot_PMC value)
+{
+ ASSERT_ARGS(Parrot_PMC_push_pmcval)
+ PARROT_CALLIN_START(interp);
+ VTABLE_push_pmc(interp, pmc, value);
+ PARROT_CALLIN_END(interp);
+}
+
+/*
+
=item C<void Parrot_PMC_delete_pmckey>
Deletes the value associated with the passed-in PMC from the PMC.
@@ -1442,7 +1462,7 @@
=item C<Parrot_PMC Parrot_sub_new_from_c_func>
-Returns a PMC sub wrapper for a c function
+Returns a PMC sub wrapper for a c function.
=cut
@@ -1464,6 +1484,32 @@
/*
+=item C<Parrot_PMC Parrot_PMC_newclass>
+
+Create a class with the type given
+
+=cut
+
+*/
+
+PARROT_EXPORT
+Parrot_PMC
+Parrot_PMC_newclass(PARROT_INTERP, Parrot_PMC classtype)
+{
+ ASSERT_ARGS(Parrot_PMC_newclass)
+ Parrot_PMC result;
+ Parrot_PMC hllns;
+ INTVAL hll;
+ PARROT_CALLIN_START(interp);
+
+ result = pmc_new_init(interp, enum_class_Class, classtype);
+
+ PARROT_CALLIN_END(interp);
+ return result;
+}
+
+/*
+
=back
=head1 SEE ALSO
More information about the parrot-commits
mailing list