struct psi_let_func {
struct psi_token *token;
token_t type;
- char *name;
+ zend_string *name;
struct psi_impl_var *var;
struct psi_plist *inner;
};
-struct psi_let_func *psi_let_func_init(token_t type, const char *name, struct psi_impl_var *var);
+struct psi_let_func *psi_let_func_init(token_t type, zend_string *name, struct psi_impl_var *var);
void psi_let_func_free(struct psi_let_func **func_ptr);
-void psi_let_func_dump(int fd, struct psi_let_func *func, unsigned level);
+void psi_let_func_dump(struct psi_dump *dump, struct psi_let_func *func, unsigned level);
void *psi_let_func_exec(struct psi_let_exp *func_val, struct psi_let_func *func, struct psi_decl_arg *darg, struct psi_call_frame *frame);
-bool psi_let_func_validate(struct psi_data *data, struct psi_let_exp *exp, struct psi_let_func *func, struct psi_impl *impl);
+bool psi_let_func_validate(struct psi_data *data, struct psi_let_func *func, struct psi_validate_scope *scope);
#include "marshal.h"
static inline psi_marshal_let locate_let_func_fn(token_t type) {
- psi_marshal_let let_fn = NULL;
+ psi_marshal_let let_fn;
switch (type) {
case PSI_T_BOOLVAL: let_fn = psi_let_boolval; break;
case PSI_T_ZVAL: let_fn = psi_let_zval; break;
case PSI_T_VOID: let_fn = psi_let_void; break;
case PSI_T_COUNT: let_fn = psi_let_count; break;
+ default: let_fn = NULL; break;
}
return let_fn;
}