projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/stable'
[pspp-builds.git]
/
src
/
data
/
settings.c
diff --git
a/src/data/settings.c
b/src/data/settings.c
index f9c65fc8c4ee61f53eb2c4cc3db9af21a6f49417..c86ac9cc7e2c856ee685d271cf0995e5a9bbafd1 100644
(file)
--- a/
src/data/settings.c
+++ b/
src/data/settings.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006, 2007
, 2009
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
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
@@
-22,11
+22,13
@@
#include "format.h"
#include "value.h"
#include "xalloc.h"
#include "format.h"
#include "value.h"
#include "xalloc.h"
+#include <data/case.h>
+#include <libpspp/i18n.h>
#include <libpspp/integer-format.h>
#include <libpspp/message.h>
#include <libpspp/integer-format.h>
#include <libpspp/message.h>
-#include <libpspp/i18n.h>
#include "error.h"
#include "error.h"
+#include "minmax.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@
-515,13
+517,12
@@
settings_get_workspace (void)
}
/* Approximate maximum number of cases to allocate in-core, given
}
/* Approximate maximum number of cases to allocate in-core, given
- that each case
contains VALUE_CNT values
. */
+ that each case
has the format given in PROTO
. */
size_t
size_t
-settings_get_workspace_cases (
size_t value_cnt
)
+settings_get_workspace_cases (
const struct caseproto *proto
)
{
{
- size_t case_size = sizeof (union value) * value_cnt + 4 * sizeof (void *);
- size_t case_cnt = MAX (settings_get_workspace () / case_size, 4);
- return case_cnt;
+ size_t n_cases = settings_get_workspace () / case_get_cost (proto);
+ return MAX (n_cases, 4);
}
/* Set approximate maximum amount of memory to use for cases, in
}
/* Set approximate maximum amount of memory to use for cases, in