X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Fscatterplot.c;h=5073a5a71b7e5e5b600905b2f97edafd9d82b5dc;hb=58c0ae54e9ff110922aa41bb51c82baa9fb0bb3b;hp=920bc17367a8e5a2741b46c026f74da4a4acc4c7;hpb=80595f6de2ea8f0b64756d76c7ac3c89a1abbbb8;p=pspp diff --git a/src/output/charts/scatterplot.c b/src/output/charts/scatterplot.c index 920bc17367..5073a5a71b 100644 --- a/src/output/charts/scatterplot.c +++ b/src/output/charts/scatterplot.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2014 Free Software Foundation, Inc. + Copyright (C) 2014, 2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,19 +21,17 @@ #include #include "data/casereader.h" +#include "data/variable.h" #include "libpspp/cast.h" #include "output/chart-item-provider.h" #include "gl/minmax.h" - -/* Creates a scatterplot - - The caller retains ownership of READER. */ +/* Creates a scatterplot */ struct scatterplot_chart * -scatterplot_create (const struct casereader *reader, - const struct variable *xvar, - const struct variable *yvar, +scatterplot_create (struct casereader *reader, + const char *xlabel, + const char *ylabel, const struct variable *byvar, bool *byvar_overflow, const char *label, @@ -43,7 +41,7 @@ scatterplot_create (const struct casereader *reader, spc = xzalloc (sizeof *spc); chart_item_init (&spc->chart_item, &scatterplot_chart_class, label); - spc->data = casereader_clone (reader); + spc->data = reader; spc->y_min = ymin; spc->y_max = ymax; @@ -51,9 +49,10 @@ scatterplot_create (const struct casereader *reader, spc->x_min = xmin; spc->x_max = xmax; - spc->xvar = xvar; - spc->yvar = yvar; - spc->byvar = byvar; + spc->xlabel = xstrdup (xlabel); + spc->ylabel = xstrdup (ylabel); + spc->byvar = byvar != NULL ? var_clone (byvar) : NULL; + spc->byvar_overflow = byvar_overflow; return spc; @@ -64,6 +63,10 @@ scatterplot_chart_destroy (struct chart_item *chart_item) { struct scatterplot_chart *spc = to_scatterplot_chart (chart_item); casereader_destroy (spc->data); + free (spc->xlabel); + free (spc->ylabel); + if (spc->byvar) + var_destroy (spc->byvar); free (spc); }