X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fgnumeric-reader.c;h=0783e10f7c1b33452222b82238d95d51ae582004;hb=df2866a475d36298a14cc1e97c6118e088ac85da;hp=e0e95069b602fb38a3794ca2075d70ed50bf77b5;hpb=6acdfa0d3d24323f4df79547fd7ce85bf0406542;p=pspp diff --git a/src/data/gnumeric-reader.c b/src/data/gnumeric-reader.c index e0e95069b6..0783e10f7c 100644 --- a/src/data/gnumeric-reader.c +++ b/src/data/gnumeric-reader.c @@ -189,6 +189,8 @@ gnumeric_unref (struct spreadsheet *s) free (r->sheets); state_data_destroy (&r->msd); + free (s->file_name); + free (r); } } @@ -555,7 +557,7 @@ gnumeric_reopen (struct gnumeric_reader *r, const char *filename, bool show_erro { r = xzalloc (sizeof *r); r->spreadsheet.n_sheets = -1; - r->spreadsheet.file_name = filename; + r->spreadsheet.file_name = strdup (filename); sd = &r->msd; } else @@ -589,8 +591,7 @@ gnumeric_reopen (struct gnumeric_reader *r, const char *filename, bool show_erro if ( ret != 1) { /* Does not seem to be a gnumeric file */ - xmlFreeTextReader (sd->xtr); - free (r); + gnumeric_unref (&r->spreadsheet); return NULL; }