projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
parser.h
diff --git
a/src/parser.h
b/src/parser.h
index 9709a1d81ee854f4f072f8fd767d4ebbde5ba325..4e5e0648351d4abcb8eb53b26186635b31dfb341 100644
(file)
--- a/
src/parser.h
+++ b/
src/parser.h
@@
-92,13
+92,15
@@
static void free_decl_typedefs(decl_typedefs *defs) {
typedef struct decl_var {
char *name;
unsigned pointer_level;
typedef struct decl_var {
char *name;
unsigned pointer_level;
+ unsigned array_size;
struct decl_arg *arg;
} decl_var;
struct decl_arg *arg;
} decl_var;
-static inline decl_var *init_decl_var(char *name, unsigned pl) {
+static inline decl_var *init_decl_var(char *name, unsigned pl
, unsigned as
) {
decl_var *v = malloc(sizeof(*v));
v->name = (char *) strdup((const char *) name);
v->pointer_level = pl;
decl_var *v = malloc(sizeof(*v));
v->name = (char *) strdup((const char *) name);
v->pointer_level = pl;
+ v->array_size = as;
return v;
}
return v;
}
@@
-459,7
+461,9
@@
static inline let_stmt *init_let_stmt(decl_var *var, let_value *val) {
static inline void free_let_stmt(let_stmt *stmt) {
free_decl_var(stmt->var);
static inline void free_let_stmt(let_stmt *stmt) {
free_decl_var(stmt->var);
- free_let_value(stmt->val);
+ if (stmt->val) {
+ free_let_value(stmt->val);
+ }
free(stmt);
}
free(stmt);
}