Skip to content

Commit 03af620

Browse files
[gnc-autoclear] upgrade - improve Subset Sum Problem
- still O(2^n) runtime but uses O(n) stack size, and *much* less memory - a runtime monitor, limiting time (default 1s)
1 parent 6041017 commit 03af620

File tree

10 files changed

+345
-273
lines changed

10 files changed

+345
-273
lines changed

gnucash/gnome-utils/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ set (gnome_utils_SOURCES
4848
dialog-utils.c
4949
gnc-account-sel.c
5050
gnc-amount-edit.c
51-
gnc-autoclear.c
5251
gnc-autosave.c
5352
gnc-cell-renderer-text-flag.c
5453
gnc-cell-renderer-text-view.c
@@ -135,7 +134,6 @@ set (gnome_utils_HEADERS
135134
dialog-utils.h
136135
gnc-account-sel.h
137136
gnc-amount-edit.h
138-
gnc-autoclear.h
139137
gnc-cell-renderer-text-flag.h
140138
gnc-cell-renderer-text-view.h
141139
gnc-cell-view.h

gnucash/gnome-utils/gnc-autoclear.c

Lines changed: 0 additions & 226 deletions
This file was deleted.

gnucash/gnome-utils/test/CMakeLists.txt

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,7 @@ gnc_add_scheme_test_targets(scm-test-load-gnome-utils-module
2424
OUTPUT_DIR "tests"
2525
DEPENDS "${GUILE_DEPENDS}")
2626

27-
set(test_autoclear_SOURCES
28-
test-autoclear.cpp
29-
)
30-
31-
set(test_autoclear_INCLUDE_DIRS
32-
${CMAKE_BINARY_DIR}/common
33-
${CMAKE_SOURCE_DIR}/libgnucash/engine
34-
)
35-
36-
set(test_autoclear_LIBS
37-
gnc-engine
38-
gnc-gnome-utils
39-
gtest
40-
)
41-
42-
gnc_add_test(test-autoclear "${test_autoclear_SOURCES}"
43-
test_autoclear_INCLUDE_DIRS
44-
test_autoclear_LIBS
45-
)
46-
4727
gnc_add_scheme_tests(test-load-gnome-utils-module.scm)
4828

4929

50-
set_dist_list(test_gnome_utils_DIST CMakeLists.txt test-load-gnome-utils-module.scm
51-
${test_autoclear_SOURCES})
30+
set_dist_list(test_gnome_utils_DIST CMakeLists.txt test-load-gnome-utils-module.scm)

gnucash/gnome/window-autoclear.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,11 @@ gnc_autoclear_window_ok_cb (GtkWidget *widget,
139139
toclear_value = gnc_numeric_convert
140140
(toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
141141

142-
gnc_autoclear_get_splits (data->account, toclear_value, INT64_MAX,
143-
&toclear_list, &error, data->status_label);
142+
#define MAX_AUTOCLEAR_SECONDS 5
143+
144+
toclear_list = gnc_account_get_autoclear_splits
145+
(data->account, toclear_value, INT64_MAX, &error,
146+
MAX_AUTOCLEAR_SECONDS);
144147
}
145148

146149
if (error && error->message)

libgnucash/app-utils/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ set (app_utils_HEADERS
1010
QuickFill.h
1111
file-utils.h
1212
gnc-account-merge.h
13+
gnc-autoclear.h
1314
gnc-addr-quickfill.h
1415
gnc-entry-quickfill.h
1516
gnc-gsettings.h
@@ -25,6 +26,7 @@ set (app_utils_SOURCES
2526
QuickFill.c
2627
file-utils.c
2728
gnc-account-merge.c
29+
gnc-autoclear.cpp
2830
gnc-addr-quickfill.c
2931
gnc-entry-quickfill.c
3032
gnc-gsettings.cpp

0 commit comments

Comments
 (0)