X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvfm.c;h=1ea4211e32c521065c6ab866ec2d92eb14e4bdd3;hb=205ac3afa4c2b19c85819d8695abf3975bb11807;hp=4a693bc297f2b05a788cc2252b3111b5917def19;hpb=14e7292894533c5491a774a2d749386362660812;p=pspp-builds.git diff --git a/src/vfm.c b/src/vfm.c index 4a693bc2..1ea4211e 100644 --- a/src/vfm.c +++ b/src/vfm.c @@ -20,7 +20,7 @@ #include #include "vfm.h" #include "vfmP.h" -#include +#include "error.h" #include #include #include @@ -435,8 +435,12 @@ close_active_file (void) /* Old data sink becomes new data source. */ if (vfm_sink->class->make_source != NULL) vfm_source = vfm_sink->class->make_source (vfm_sink); - else - vfm_source = NULL; + else + { + if (vfm_sink->class->destroy != NULL) + vfm_sink->class->destroy (vfm_sink); + vfm_source = NULL; + } free_case_sink (vfm_sink); vfm_sink = NULL; @@ -492,7 +496,7 @@ storage_sink_open (struct case_sink *sink) else { info->mode = MEMORY; - info->max_cases = (set_max_workspace + info->max_cases = (get_max_workspace() / (sizeof (struct case_list) + info->case_size)); } } @@ -598,7 +602,7 @@ storage_sink_write (struct case_sink *sink, const struct ccase *c) workspace_overflow = 1; msg (MW, _("Workspace limit of %d KB (%d cases at %d bytes each) " "overflowed. Writing active file to disk."), - set_max_workspace / 1024, info->max_cases, + get_max_workspace() / 1024, info->max_cases, sizeof (struct case_list) + info->case_size); storage_to_disk (info, sink->value_cnt);