summaryrefslogtreecommitdiff
path: root/libyasm
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2001-11-19 03:24:40 +0000
committerPeter Johnson <peter@tortall.net>2001-11-19 03:24:40 +0000
commitb963c38833bca7693fd35fde81d46b23f275ab36 (patch)
tree6369f8f53f77d2b23e62d5c807718345225aa6d4 /libyasm
parentac65ee8770c9ba458bc869c9a64315f367379683 (diff)
downloadyasm-b963c38833bca7693fd35fde81d46b23f275ab36.tar.gz
Change val to be a string instead of an expr.
svn path=/trunk/yasm/; revision=342
Diffstat (limited to 'libyasm')
-rw-r--r--libyasm/valparam.c3
-rw-r--r--libyasm/valparam.h8
2 files changed, 8 insertions, 3 deletions
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