From: Peter Johnson Date: Mon, 19 Nov 2001 03:24:40 +0000 (-0000) Subject: Change val to be a string instead of an expr. X-Git-Tag: v0.1.0~188 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b963c38833bca7693fd35fde81d46b23f275ab36;p=yasm Change val to be a string instead of an expr. svn path=/trunk/yasm/; revision=342 --- diff --git a/libyasm/valparam.c b/libyasm/valparam.c index 5e2e82ba..434b0b00 100644 --- a/libyasm/valparam.c +++ b/libyasm/valparam.c @@ -33,7 +33,8 @@ vps_delete(valparamhead *headp) cur = STAILQ_FIRST(headp); while (cur) { next = STAILQ_NEXT(cur, link); - expr_delete(cur->val); + if (cur->val) + xfree(cur->val); if (cur->param) expr_delete(cur->param); xfree(cur); diff --git a/libyasm/valparam.h b/libyasm/valparam.h index 50ac7829..571ba144 100644 --- a/libyasm/valparam.h +++ b/libyasm/valparam.h @@ -24,12 +24,13 @@ typedef struct valparam { /*@reldef@*/ STAILQ_ENTRY(valparam) link; - /*@owned@*/ expr *val; + /*@owned@*/ /*@null@*/ char *val; /*@owned@*/ /*@null@*/ expr *param; } valparam; typedef /*@reldef@*/ STAILQ_HEAD(valparamhead, valparam) valparamhead; -void vp_new(/*@out@*/ valparam *r, /*@keep@*/ expr *v, /*@keep@*/ expr *p); +void vp_new(/*@out@*/ valparam *r, /*@keep@*/ const char *v, + /*@keep@*/ expr *p); #define vp_new(r, v, p) do { \ r = xmalloc(sizeof(valparam)); \ r->val = v; \ @@ -45,6 +46,9 @@ void vps_append(valparamhead *headp, /*@keep@*/ valparam *vp); STAILQ_INSERT_TAIL(headp, vp, link); \ } while(0) +/*@null@*/ /*@dependent@*/ valparam *vps_first(valparamhead *headp); +#define vps_first(headp) STAILQ_FIRST(headp) + #define vps_foreach(iter, headp) STAILQ_FOREACH(iter, headp, link) #endif diff --git a/src/valparam.c b/src/valparam.c index 5e2e82ba..434b0b00 100644 --- a/src/valparam.c +++ b/src/valparam.c @@ -33,7 +33,8 @@ vps_delete(valparamhead *headp) cur = STAILQ_FIRST(headp); while (cur) { next = STAILQ_NEXT(cur, link); - expr_delete(cur->val); + if (cur->val) + xfree(cur->val); if (cur->param) expr_delete(cur->param); xfree(cur); diff --git a/src/valparam.h b/src/valparam.h index 50ac7829..571ba144 100644 --- a/src/valparam.h +++ b/src/valparam.h @@ -24,12 +24,13 @@ typedef struct valparam { /*@reldef@*/ STAILQ_ENTRY(valparam) link; - /*@owned@*/ expr *val; + /*@owned@*/ /*@null@*/ char *val; /*@owned@*/ /*@null@*/ expr *param; } valparam; typedef /*@reldef@*/ STAILQ_HEAD(valparamhead, valparam) valparamhead; -void vp_new(/*@out@*/ valparam *r, /*@keep@*/ expr *v, /*@keep@*/ expr *p); +void vp_new(/*@out@*/ valparam *r, /*@keep@*/ const char *v, + /*@keep@*/ expr *p); #define vp_new(r, v, p) do { \ r = xmalloc(sizeof(valparam)); \ r->val = v; \ @@ -45,6 +46,9 @@ void vps_append(valparamhead *headp, /*@keep@*/ valparam *vp); STAILQ_INSERT_TAIL(headp, vp, link); \ } while(0) +/*@null@*/ /*@dependent@*/ valparam *vps_first(valparamhead *headp); +#define vps_first(headp) STAILQ_FIRST(headp) + #define vps_foreach(iter, headp) STAILQ_FOREACH(iter, headp, link) #endif