X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes.h;h=46a58a5894487704497fdf58f6197452c04f7bad;hp=4e29a4577dfa3bb18e2934c2098934c09728c9da;hb=4bf8ff5e477da2fa4f82518bb947055c2c0374d6;hpb=b78637d9020222f1032349f231c0dc84a69797bc diff --git a/src/types.h b/src/types.h index 4e29a45..46a58a5 100644 --- a/src/types.h +++ b/src/types.h @@ -26,6 +26,8 @@ #ifndef PSI_TYPES_H #define PSI_TYPES_H +#include + #include "token.h" #include "types/impl_val.h" #include "types/decl_type.h" @@ -33,12 +35,12 @@ #include "types/decl_arg.h" #include "types/decl_abi.h" #include "types/decl.h" +#include "types/decl_extvar.h" #include "types/decl_struct.h" #include "types/decl_union.h" #include "types/impl_type.h" #include "types/impl_var.h" #include "types/impl_def_val.h" -#include "types/const_type.h" #include "types/const.h" #include "types/impl_arg.h" #include "types/impl_func.h" @@ -73,7 +75,7 @@ static inline impl_val *deref_impl_val(impl_val *ret_val, struct psi_decl_var *v ZEND_ASSERT(!var->arg || var->arg->var != var); #if 0 fprintf(stderr, "deref: %s pl=%u:%u as=%u:%u %p\n", - var->name, var->pointer_level, var->arg->var->pointer_level, + var->name->val, var->pointer_level, var->arg->var->pointer_level, var->array_size, var->arg->var->array_size, ret_val); #endif for (i = 0; i < var->pointer_level; ++i) { @@ -85,39 +87,4 @@ static inline impl_val *deref_impl_val(impl_val *ret_val, struct psi_decl_var *v return ret_val; } -static inline impl_val *enref_impl_val(void *ptr, struct psi_decl_var *var) { - impl_val *val, *val_ptr; - unsigned i; - - ZEND_ASSERT(var->arg->var == var); -#if 0 - fprintf(stderr, "enref: %s pl=%u:%u as=%u:%u\n", - var->name, var->pointer_level, var->arg->var->pointer_level, - var->array_size, var->arg->var->array_size); -#endif - if (!var->pointer_level ){//&& real_decl_type(var->arg->type)->type != PSI_T_STRUCT) { - return ptr; - } - - val = calloc(var->pointer_level + 1, sizeof(void *)); - val_ptr = val; - for (i = !var->arg->var->array_size; i < var->pointer_level; ++i) { -#if 0 - fprintf(stderr, "++\n"); -#endif - val_ptr->ptr = (void **) val_ptr + 1; - val_ptr = val_ptr->ptr; - } - val_ptr->ptr = ptr; - return val; -} - -static inline impl_val *struct_member_ref(struct psi_decl_arg *set_arg, impl_val *struct_ptr, impl_val **to_free) { - void *ptr = (char *) struct_ptr + set_arg->layout->pos; -#if 0 - fprintf(stderr, "struct member %s: %p\n", set_arg->var->name, ptr); -#endif - return ptr; -} - #endif