summaryrefslogtreecommitdiff
path: root/lib/format_text
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-03-04 18:09:58 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-03-08 15:43:27 +0100
commitf4200acac23df573717b32a44e018b30b5a90a70 (patch)
tree50660f5f9d6b3c6ed63041a2d6c5519a33028a75 /lib/format_text
parentdac990ae03f9517e050f8ea3a55529e944c60f4f (diff)
downloadlvm2-f4200acac23df573717b32a44e018b30b5a90a70.tar.gz
cleanup: on stack structure instead of allocation
Diffstat (limited to 'lib/format_text')
-rw-r--r--lib/format_text/export.c59
1 files changed, 25 insertions, 34 deletions
diff --git a/lib/format_text/export.c b/lib/format_text/export.c
index cdae8bc87..2253a80af 100644
--- a/lib/format_text/export.c
+++ b/lib/format_text/export.c
@@ -1040,62 +1040,53 @@ static int _text_vg_export(struct formatter *f,
int text_vg_export_file(struct volume_group *vg, const char *desc, FILE *fp)
{
- struct formatter *f;
int r;
+ struct formatter f = {
+ .indent = 0,
+ .header = 1,
+ .out_with_comment = &_out_with_comment_file,
+ .nl = &_nl_file,
+ .data.fp = fp,
+ };
_init();
- if (!(f = zalloc(sizeof(*f))))
- return_0;
-
- f->data.fp = fp;
- f->indent = 0;
- f->header = 1;
- f->out_with_comment = &_out_with_comment_file;
- f->nl = &_nl_file;
+ if ((r = _text_vg_export(&f, vg, desc)))
+ r = !ferror(f.data.fp);
- r = _text_vg_export(f, vg, desc);
- if (r)
- r = !ferror(f->data.fp);
- free(f);
return r;
}
/* Returns amount of buffer used incl. terminating NUL */
size_t text_vg_export_raw(struct volume_group *vg, const char *desc, char **buf, uint32_t *buf_size)
{
- struct formatter *f;
- size_t r = 0;
+ size_t r;
+ struct formatter f = {
+ .indent = 0,
+ .header = 0,
+ .out_with_comment = &_out_with_comment_raw,
+ .nl = &_nl_raw,
+ .data.buf.size = 65536, /* Initial metadata limit */
+ };
_init();
- if (!(f = zalloc(sizeof(*f))))
- return_0;
-
- f->data.buf.size = 65536; /* Initial metadata limit */
- if (!(f->data.buf.start = zalloc(f->data.buf.size))) {
+ if (!(f.data.buf.start = zalloc(f.data.buf.size))) {
log_error("text_export buffer allocation failed");
- goto out;
+ return 0;
}
- f->indent = 0;
- f->header = 0;
- f->out_with_comment = &_out_with_comment_raw;
- f->nl = &_nl_raw;
-
- if (!_text_vg_export(f, vg, desc)) {
- free(f->data.buf.start);
- goto_out;
+ if (!_text_vg_export(&f, vg, desc)) {
+ free(f.data.buf.start);
+ return 0;
}
- r = f->data.buf.used + 1;
- *buf = f->data.buf.start;
+ r = f.data.buf.used + 1;
+ *buf = f.data.buf.start;
if (buf_size)
- *buf_size = f->data.buf.size;
+ *buf_size = f.data.buf.size;
- out:
- free(f);
return r;
}