projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
don't let impls leak into decls
[m6w6/ext-psi]
/
src
/
parser.h
diff --git
a/src/parser.h
b/src/parser.h
index f16f8b853d717c3c49f463bd70f6e47580b59214..34e849e712dc38a4ed4e90f90ce3df985592b4db 100644
(file)
--- a/
src/parser.h
+++ b/
src/parser.h
@@
-59,7
+59,6
@@
typedef union impl_val {
zend_string *str;
zend_fcall *cb;
} zend;
zend_string *str;
zend_fcall *cb;
} zend;
- zval zval;
void *ptr;
} impl_val;
void *ptr;
} impl_val;
@@
-157,9
+156,9
@@
typedef struct decl_arg {
decl_type *type;
decl_var *var;
decl_struct_layout *layout;
decl_type *type;
decl_var *var;
decl_struct_layout *layout;
- struct let_stmt *let; /* FIXME: decls must not point to impls !!! */
impl_val val;
void *ptr;
impl_val val;
void *ptr;
+ void *let;
void *mem;
} decl_arg;
void *mem;
} decl_arg;
@@
-170,6
+169,7
@@
static inline decl_arg *init_decl_arg(decl_type *type, decl_var *var) {
arg->var = var;
var->arg = arg;
arg->ptr = &arg->val;
arg->var = var;
var->arg = arg;
arg->ptr = &arg->val;
+ arg->let = arg->ptr;
return arg;
}
return arg;
}
@@
-1017,8
+1017,6
@@
static inline void free_let_val(let_val *let) {
typedef struct let_stmt {
decl_var *var;
let_val *val;
typedef struct let_stmt {
decl_var *var;
let_val *val;
-
- void *ptr;
} let_stmt;
static inline let_stmt *init_let_stmt(decl_var *var, let_val *val) {
} let_stmt;
static inline let_stmt *init_let_stmt(decl_var *var, let_val *val) {