Author: petdance
Date: Sat Jun 16 17:18:02 2007
New Revision: 19051
Modified:
trunk/config/gen/makefiles/root.in
trunk/include/parrot/inter_call.h
trunk/src/inter_call.c
Log:
headerized inter_call.c
Modified: trunk/config/gen/makefiles/root.in
==============================================================================
--- trunk/config/gen/makefiles/root.in (original)
+++ trunk/config/gen/makefiles/root.in Sat Jun 16 17:18:02 2007
@@ -1854,6 +1854,7 @@
src/hash.o \
src/headers.o \
src/hll.o \
+ src/inter_call.o \
src/intlist.o \
src/key.o \
src/list.o \
Modified: trunk/include/parrot/inter_call.h
==============================================================================
--- trunk/include/parrot/inter_call.h (original)
+++ trunk/include/parrot/inter_call.h Sat Jun 16 17:18:02 2007
@@ -1,5 +1,5 @@
/* inter_call.h
- * Copyright (C) 2001-2003, The Perl Foundation.
+ * Copyright (C) 2001-2007, The Perl Foundation.
* SVN Info
*Id: inter_call.h 17714 2007-03-24 17:04:39Z tewk
* Overview:
@@ -68,41 +68,97 @@
PARROT_PASS_RESULTS = 0x01
} arg_pass_t;
-PARROT_API int Parrot_init_arg_indexes_and_sig_pmc(Interp *interp,
parrot_context_t *ctx,
- opcode_t *indexes, PMC* sig_pmc, call_state_item *st);
+/* HEADERIZER BEGIN: src/inter_call.c */
-PARROT_API int Parrot_init_arg_sig(Interp *, parrot_context_t *ctx,
- const char *sig, void *ap, call_state_item *st);
+PARROT_API void Parrot_convert_arg( Interp *interp, call_state *st /*NN*/ )
+ __attribute__nonnull__(2);
-PARROT_API int Parrot_init_arg_op(Interp *, parrot_context_t *ctx,
- opcode_t *pc, call_state_item *st);
+PARROT_API int Parrot_fetch_arg( Interp *interp, call_state *st /*NN*/ )
+ __attribute__nonnull__(2);
-PARROT_API void Parrot_process_args(Interp *interp, call_state *st,
- arg_pass_t param_or_result);
-
-PARROT_API int Parrot_init_arg_nci(Interp *, call_state *st, const char *sig);
-PARROT_API int Parrot_init_ret_nci(Interp *, call_state *st, const char *sig);
-
-PARROT_API int Parrot_fetch_arg(Interp *, call_state *st);
-PARROT_API int Parrot_fetch_arg_nci(Interp *, call_state *st);
-PARROT_API void Parrot_convert_arg(Interp *, call_state *st);
-PARROT_API int Parrot_store_arg(Interp *, call_state *st);
-
-PARROT_API void parrot_pass_args(Interp *, parrot_context_t *src_ctx,
- parrot_context_t *dest_ctx, opcode_t *src_indexes, opcode_t
*dest_indexes,
- arg_pass_t param_or_result);
-opcode_t * parrot_pass_args_fromc(Interp *, const char *sig,
- opcode_t *dest, parrot_context_t * ctx, va_list ap);
-
-void* set_retval(Interp*, int sig_ret, parrot_context_t *ctx);
-INTVAL set_retval_i(Interp*, int sig_ret, parrot_context_t *ctx);
-FLOATVAL set_retval_f(Interp*, int sig_ret, parrot_context_t *ctx);
-STRING* set_retval_s(Interp*, int sig_ret, parrot_context_t *ctx);
-PMC* set_retval_p(Interp*, int sig_ret, parrot_context_t *ctx);
-
-/* PMC Method Invoke */
-PARROT_API void Parrot_PCCINVOKE(Interp* interp, PMC* pmc, STRING *method_name,
- const char *signature, ... );
+PARROT_API int Parrot_fetch_arg_nci( Interp *interp, call_state *st /*NN*/ )
+ __attribute__nonnull__(2);
+
+PARROT_API int Parrot_init_arg_indexes_and_sig_pmc( Interp *interp,
+ parrot_context_t *ctx /*NN*/,
+ opcode_t *indexes /*NN*/,
+ PMC* sig_pmc /*NN*/,
+ call_state_item *st /*NN*/ )
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+PARROT_API int Parrot_init_arg_nci( Interp *interp /*NN*/,
+ call_state *st /*NN*/,
+ const char *sig )
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_API int Parrot_init_arg_op( Interp *interp,
+ parrot_context_t *ctx /*NN*/,
+ opcode_t *pc /*NULLOK*/,
+ call_state_item *st /*NN*/ )
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
+
+PARROT_API int Parrot_init_arg_sig( Interp *interp,
+ parrot_context_t *ctx,
+ const char *sig /*NN*/,
+ void *ap,
+ call_state_item *st /*NN*/ )
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(5);
+
+PARROT_API int Parrot_init_ret_nci( Interp *interp /*NN*/,
+ call_state *st,
+ const char *sig )
+ __attribute__nonnull__(1);
+
+PARROT_API void parrot_pass_args( Interp *interp,
+ parrot_context_t *src_ctx,
+ parrot_context_t *dest_ctx,
+ opcode_t *src_indexes,
+ opcode_t *dest_indexes,
+ arg_pass_t param_or_result );
+
+PARROT_API void Parrot_PCCINVOKE( Interp* interp,
+ PMC* pmc,
+ STRING *method_name,
+ const char *signature,
+ ... );
+
+PARROT_API void Parrot_process_args( Interp *interp,
+ call_state *st,
+ arg_pass_t param_or_result );
+
+opcode_t * parrot_pass_args_fromc( Interp *interp,
+ const char *sig,
+ opcode_t *dest,
+ parrot_context_t *old_ctxp,
+ va_list ap );
+
+int Parrot_store_arg( Interp *interp, call_state *st );
+void* set_retval( Parrot_Interp interp, int sig_ret, parrot_context_t *ctx );
+FLOATVAL set_retval_f( Interp *interp /*NN*/,
+ int sig_ret,
+ parrot_context_t *ctx )
+ __attribute__nonnull__(1);
+
+INTVAL set_retval_i( Interp *interp /*NN*/,
+ int sig_ret,
+ parrot_context_t *ctx )
+ __attribute__nonnull__(1);
+
+PMC* set_retval_p( Interp *interp /*NN*/, int sig_ret, parrot_context_t *ctx )
+ __attribute__nonnull__(1);
+
+STRING* set_retval_s( Interp *interp /*NN*/,
+ int sig_ret,
+ parrot_context_t *ctx )
+ __attribute__nonnull__(1);
+
+/* HEADERIZER END: src/inter_call.c */
#define ASSERT_SIG_PMC(sig) \
assert(PObj_is_PMC_TEST(sig) && \
Modified: trunk/src/inter_call.c
==============================================================================
--- trunk/src/inter_call.c (original)
+++ trunk/src/inter_call.c Sat Jun 16 17:18:02 2007
@@ -25,6 +25,8 @@
#include "parrot/oplib/ops.h"
#include "inter_call.str"
+/* HEADER: include/parrot/inter_call.h */
+
#define SAVE_OFF_REGS(orig, next, save) \
save.bp = orig.bp;\
@@ -38,8 +40,6 @@
static void next_arg_sig(Interp *interp, call_state_item *st);
-static int set_retval_util(Parrot_Interp interp, const char *sig,
- parrot_context_t *ctx, call_state *st);
static void check_for_opt_flag(Interp *interp, call_state *st, int has_arg);
/*
@@ -56,8 +56,9 @@
*/
+PARROT_API
int
-Parrot_init_arg_nci(Interp *interp, call_state *st, const char *sig)
+Parrot_init_arg_nci(Interp *interp /*NN*/, call_state *st /*NN*/, const char
*sig)
{
if (PMC_IS_NULL(interp->args_signature))
Parrot_init_arg_op(interp, CONTEXT(interp->ctx), interp->current_args,
&st->src);
@@ -68,8 +69,9 @@
return 1;
}
+PARROT_API
int
-Parrot_init_ret_nci(Interp *interp, call_state *st, const char *sig)
+Parrot_init_ret_nci(Interp *interp /*NN*/, call_state *st, const char *sig)
{
Parrot_Context *ctx = CONTEXT(interp->ctx);
PMC *current_cont = ctx->current_cont;
@@ -115,9 +117,10 @@
*/
+PARROT_API
int
-Parrot_init_arg_indexes_and_sig_pmc(Interp *interp, parrot_context_t *ctx,
- opcode_t *indexes, PMC* sig_pmc, call_state_item *st)
+Parrot_init_arg_indexes_and_sig_pmc(Interp *interp, parrot_context_t *ctx
/*NN*/,
+ opcode_t *indexes /*NN*/, PMC* sig_pmc /*NN*/, call_state_item *st
/*NN*/)
{
if (!sig_pmc && indexes) {
++indexes;
@@ -146,9 +149,10 @@
return st->n > 0;
}
+PARROT_API
int
-Parrot_init_arg_op(Interp *interp, parrot_context_t *ctx, opcode_t *pc,
- call_state_item *st)
+Parrot_init_arg_op(Interp *interp, parrot_context_t *ctx /*NN*/, opcode_t *pc
/*NULLOK*/,
+ call_state_item *st /*NN*/)
{
PMC *sig_pmc = PMCNULL;
if (pc) {
@@ -160,9 +164,10 @@
return Parrot_init_arg_indexes_and_sig_pmc(interp, ctx, pc, sig_pmc, st);
}
+PARROT_API
int
-Parrot_init_arg_sig(Interp *interp, parrot_context_t *ctx, const char *sig,
- void *ap, call_state_item *st)
+Parrot_init_arg_sig(Interp *interp, parrot_context_t *ctx, const char *sig
/*NN*/,
+ void *ap, call_state_item *st /*NN*/)
{
st->used = 1;
st->i = 0;
@@ -334,9 +339,9 @@
return 1;
}
-
+PARROT_API
int
-Parrot_fetch_arg(Interp *interp, call_state *st)
+Parrot_fetch_arg(Interp *interp, call_state *st /*NN*/)
{
if (!st->src.used)
return 1;
@@ -394,8 +399,9 @@
}
+PARROT_API
int
-Parrot_fetch_arg_nci(Interp *interp, call_state *st)
+Parrot_fetch_arg_nci(Interp *interp, call_state *st /*NN*/)
{
next_arg_sig(interp, &st->dest);
if (st->dest.sig & PARROT_ARG_SLURPY_ARRAY) {
@@ -654,7 +660,7 @@
static int
-store_current_arg(Interp *interp, call_state *st)
+store_current_arg(Interp *interp, call_state *st /*NN*/)
{
INTVAL idx;
if (st->dest.i >= st->dest.n)
@@ -800,6 +806,7 @@
st->first_named = -1;
}
+PARROT_API
void
Parrot_process_args(Interp *interp, call_state *st, arg_pass_t param_or_result)
{
@@ -963,8 +970,9 @@
dod_unregister_pmc(interp, dest->slurp);
}
+PARROT_API
void
-Parrot_convert_arg(Interp *interp, call_state *st)
+Parrot_convert_arg(Interp *interp, call_state *st /*NN*/)
{
/* register key args have to be cloned */
if ((st->src.sig & PARROT_ARG_TYPE_MASK) == PARROT_ARG_PMC)
@@ -1014,6 +1022,7 @@
*/
+PARROT_API
void
parrot_pass_args(Interp *interp, parrot_context_t *src_ctx, parrot_context_t
*dest_ctx,
opcode_t *src_indexes, opcode_t *dest_indexes, arg_pass_t
param_or_result)
@@ -1055,6 +1064,7 @@
=cut
*/
+
opcode_t *
parrot_pass_args_fromc(Interp *interp, const char *sig,
opcode_t *dest, parrot_context_t *old_ctxp, va_list ap)
@@ -1067,11 +1077,11 @@
return dest + st.dest.n + 2;
}
-int
-set_retval_util(Parrot_Interp interp, const char *sig, parrot_context_t *ctx,
+static int
+set_retval_util(Interp *interp /*NN*/, const char *sig, parrot_context_t *ctx,
call_state *st)
{
- opcode_t *src_pc = interp->current_returns;
+ opcode_t * const src_pc = interp->current_returns;
int todo = Parrot_init_arg_op(interp, ctx, src_pc, &st->src);
interp->current_returns = NULL;
@@ -1112,8 +1122,9 @@
/*
* handle INTVAL return value
*/
+
INTVAL
-set_retval_i(Parrot_Interp interp, int sig_ret, parrot_context_t *ctx)
+set_retval_i(Interp *interp /*NN*/, int sig_ret, parrot_context_t *ctx)
{
call_state st;
@@ -1130,7 +1141,7 @@
* handle FLOATVAL return value
*/
FLOATVAL
-set_retval_f(Parrot_Interp interp, int sig_ret, parrot_context_t *ctx)
+set_retval_f(Interp *interp /*NN*/, int sig_ret, parrot_context_t *ctx)
{
call_state st;
@@ -1147,7 +1158,7 @@
* handle STRING return value
*/
STRING*
-set_retval_s(Parrot_Interp interp, int sig_ret, parrot_context_t *ctx)
+set_retval_s(Interp *interp /*NN*/, int sig_ret, parrot_context_t *ctx)
{
call_state st;
@@ -1164,7 +1175,7 @@
* handle PMC return value
*/
PMC*
-set_retval_p(Parrot_Interp interp, int sig_ret, parrot_context_t *ctx)
+set_retval_p(Interp *interp /*NN*/, int sig_ret, parrot_context_t *ctx)
{
call_state st;
@@ -1273,6 +1284,7 @@
*/
+PARROT_API
void
Parrot_PCCINVOKE(Interp* interp, PMC* pmc, STRING *method_name, const char
*signature, ...)
{