summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKarel Zak2013-04-29 15:27:42 +0200
committerKarel Zak2013-09-16 16:46:53 +0200
commitf234cc3b5116ab215f1b13fab6f5242c295b293b (patch)
treee1db24105ed2696df6dbed623fabc00cee951a79 /lib
parentfdisk: (sun) remove dead code (diff)
downloadkernel-qcow2-util-linux-f234cc3b5116ab215f1b13fab6f5242c295b293b.tar.gz
kernel-qcow2-util-linux-f234cc3b5116ab215f1b13fab6f5242c295b293b.tar.xz
kernel-qcow2-util-linux-f234cc3b5116ab215f1b13fab6f5242c295b293b.zip
lib/tt: add TT_FL_FREEDATA
... to call free() for line data. Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/tt.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/tt.c b/lib/tt.c
index cbe4e3b4d..e701becfd 100644
--- a/lib/tt.c
+++ b/lib/tt.c
@@ -221,9 +221,17 @@ void tt_remove_lines(struct tt *tb)
return;
while (!list_empty(&tb->tb_lines)) {
+ struct list_head *p;
struct tt_line *ln = list_entry(tb->tb_lines.next,
struct tt_line, ln_lines);
list_del(&ln->ln_lines);
+
+ list_for_each(p, &tb->tb_columns) {
+ struct tt_column *cl =
+ list_entry(p, struct tt_column, cl_columns);
+ if ((cl->flags & TT_FL_FREEDATA) || (tb->flags & TT_FL_FREEDATA))
+ free(ln->data[cl->seqnum]);
+ }
free(ln->data);
free(ln);
}
@@ -360,7 +368,7 @@ struct tt_column *tt_get_column(struct tt *tb, size_t colnum)
*
* Stores data that will be printed to the table cell.
*/
-int tt_line_set_data(struct tt_line *ln, int colnum, const char *data)
+int tt_line_set_data(struct tt_line *ln, int colnum, char *data)
{
struct tt_column *cl;