]> granicus.if.org Git - yasm/commitdiff
Plug memory leak in dvs_delete().
authorPeter Johnson <peter@tortall.net>
Mon, 19 Nov 2001 07:43:26 +0000 (07:43 -0000)
committerPeter Johnson <peter@tortall.net>
Mon, 19 Nov 2001 07:43:26 +0000 (07:43 -0000)
svn path=/trunk/yasm/; revision=352

libyasm/bytecode.c
src/bytecode.c

index 00b8691fb89512c50d88346fc4a30e3cc4f42610..bfc19cbf4ac1e6c547bd82b8e0ae653b9d7c2ff3 100644 (file)
@@ -350,8 +350,16 @@ dvs_delete(datavalhead *headp)
     cur = STAILQ_FIRST(headp);
     while (cur) {
        next = STAILQ_NEXT(cur, link);
-       if (cur->type == DV_EXPR)
-           expr_delete(cur->data.expn);
+       switch (cur->type) {
+           case DV_EXPR:
+               expr_delete(cur->data.expn);
+               break;
+           case DV_STRING:
+               xfree(cur->data.str_val);
+               break;
+           default:
+               break;
+       }
        xfree(cur);
        cur = next;
     }
index 00b8691fb89512c50d88346fc4a30e3cc4f42610..bfc19cbf4ac1e6c547bd82b8e0ae653b9d7c2ff3 100644 (file)
@@ -350,8 +350,16 @@ dvs_delete(datavalhead *headp)
     cur = STAILQ_FIRST(headp);
     while (cur) {
        next = STAILQ_NEXT(cur, link);
-       if (cur->type == DV_EXPR)
-           expr_delete(cur->data.expn);
+       switch (cur->type) {
+           case DV_EXPR:
+               expr_delete(cur->data.expn);
+               break;
+           case DV_STRING:
+               xfree(cur->data.str_val);
+               break;
+           default:
+               break;
+       }
        xfree(cur);
        cur = next;
     }