pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/      /* -  * $Id: interpret.h,v 1.59 2000/08/07 16:02:47 grubba Exp $ +  * $Id: interpret.h,v 1.60 2000/08/07 18:53:20 grubba Exp $    */   #ifndef INTERPRET_H   #define INTERPRET_H      #include "global.h"   #include "program.h"   #include "error.h"      struct Pike_interpreter {    /* Swapped variables */
pike.git/src/interpret.h:167:    }while(0)         enum apply_type   {    APPLY_STACK, /* The function is the first argument */    APPLY_SVALUE, /* arg1 points to an svalue containing the function */    APPLY_LOW /* arg1 is the object pointer,(int)arg2 the function */   };    - #ifdef __ECL - static inline void apply_low(struct object *o, ptrdiff_t fun, INT32 args) - { -  mega_apply(APPLY_LOW, args, (void*)o, (void*)fun); - } -  - static inline void strict_apply_svalue(struct svalue *sval, INT32 args) - { -  mega_apply(APPLY_SVALUE, args, (void*)sval, 0); - } - #else /* !__ECL */ - #define apply_low(O,FUN,ARGS) \ -  mega_apply(APPLY_LOW, (ARGS), (void*)(O),(void*)(FUN)) -  - #define strict_apply_svalue(SVAL,ARGS) \ -  mega_apply(APPLY_SVALUE, (ARGS), (void*)(SVAL),0) - #endif /* __ECL */ -  +    #define APPLY_MASTER(FUN,ARGS) \   do{ \    static int fun_,master_cnt=0; \    struct object *master_ob=master(); \    if(master_cnt != master_ob->prog->id) \    { \    fun_=find_identifier(FUN,master_ob->prog); \    master_cnt = master_ob->prog->id; \    } \    apply_low(master_ob, fun_, ARGS); \
pike.git/src/interpret.h:251:   PMOD_EXPORT void apply_shared(struct object *o,    struct pike_string *fun,    int args);   PMOD_EXPORT void apply(struct object *o, char *fun, int args);   PMOD_EXPORT void apply_svalue(struct svalue *s, INT32 args);   PMOD_EXPORT void slow_check_stack(void);   void cleanup_interpret(void);   void really_clean_up_interpret(void);   /* Prototypes end here */    + /* These need to be after the prototypes, +  * to avoid implicit declaration of mega_apply(). +  */ + #ifdef __ECL + static inline void apply_low(struct object *o, ptrdiff_t fun, INT32 args) + { +  mega_apply(APPLY_LOW, args, (void*)o, (void*)fun); + } +  + static inline void strict_apply_svalue(struct svalue *sval, INT32 args) + { +  mega_apply(APPLY_SVALUE, args, (void*)sval, 0); + } + #else /* !__ECL */ + #define apply_low(O,FUN,ARGS) \ +  mega_apply(APPLY_LOW, (ARGS), (void*)(O),(void*)(FUN)) +  + #define strict_apply_svalue(SVAL,ARGS) \ +  mega_apply(APPLY_SVALUE, (ARGS), (void*)(SVAL),0) + #endif /* __ECL */ +    PMOD_EXPORT extern int d_flag; /* really in main.c */      PMOD_EXPORT extern int Pike_stack_size;   PMOD_EXPORT struct callback;   PMOD_EXPORT extern struct callback_list evaluator_callbacks;   PMOD_EXPORT extern void call_callback(struct callback_list *, void *);      /* Things to try:    * we could reduce thread swapping to a pointer operation if    * we do something like: