};
struct psi_context_ops {
+ ZEND_RESULT_CODE (*load)(void);
+ void (*free)(void);
void (*init)(struct psi_context *C);
void (*dtor)(struct psi_context *C);
zend_function_entry *(*compile)(struct psi_context *C);
- void (*call)(struct psi_context *C, struct psi_call_frame *frame, struct psi_decl *psi_decl, void *rval, void **args);
- void (*call_va)(struct psi_context *C, struct psi_call_frame *frame, struct psi_decl *psi_decl, void *rval, void **args, size_t va_count, void **va_types);
+ void (*call)(struct psi_call_frame *frame);
void *(*query)(struct psi_context *C, enum psi_context_query q, void *arg);
};
struct psi_context *psi_context_init(struct psi_context *C, struct psi_context_ops *ops, psi_error_cb error, unsigned flags);
void psi_context_build(struct psi_context *C, const char *path);
-bool psi_context_add_data(struct psi_context *C, struct psi_data *P);
zend_function_entry *psi_context_compile(struct psi_context *C);
ZEND_RESULT_CODE psi_context_call(struct psi_context *C, zend_execute_data *execute_data, zval *return_value, struct psi_impl *impl);
void psi_context_dump(struct psi_context *C, int fd);