gnucash/libgnucash/engine
John Ralls 8546aa975e Revert "Fix two use-after-free issues found by address sanitizer."
This reverts commit 4dbf803041.

The use-after free errors are caused by the compiler reordering the
steps in xaccSplitFree and Transaction's do_destroy. Unfortunately the
corrections here caused trouble in other places, leading to test failures.
2024-02-19 21:11:54 -08:00
..
mocks Change g_assert() -> g_assert_true() in tests 2023-07-16 10:09:12 -07:00
test removed old_internal_name from gnc_quote_source_s (deprecated) 2024-02-17 22:52:40 +08:00
test-core Valgrind: fix "definitely lost" memory in test - test-lots 2023-07-19 10:21:30 +01:00
Account.cpp [account.cpp] add more account metadata - assoc account 2024-01-26 20:54:20 +08:00
Account.h [account.cpp] add more account metadata - assoc account 2024-01-26 20:54:20 +08:00
AccountP.h Fix some typos in comments 2023-05-13 13:00:25 +01:00
cap-gains.c Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
cap-gains.h Add #ifdef __cplusplus extern "C" {} wrappers to .h files 2024-02-08 21:26:47 +08:00
cashobjects.c Bug 798320 - Error message indicating a crash of GNUcash when closing... 2021-10-08 14:17:28 -07:00
cashobjects.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
CMakeLists.txt [gnc-lot.cpp] convert to cpp 2024-02-09 17:23:51 +08:00
design.txt Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
engine-helpers.c Remove the incomplete book-currency code. 2021-07-10 17:29:11 -07:00
engine-helpers.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
extensions.txt Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
FreqSpec.h Restructure the src directory 2017-08-10 18:45:00 +02:00
gnc-accounting-period.c [options] Move options from app-utils to engine. 2022-08-25 22:09:56 -07:00
gnc-accounting-period.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-aqbanking-templates.cpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-aqbanking-templates.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gnc-backend-prov.hpp Restructure the src directory 2017-08-10 18:45:00 +02:00
gnc-budget.cpp [gnc-budget] use std::optional<gnc_numeric> instead of bool+gnc_numeric 2023-11-18 08:59:32 +08:00
gnc-budget.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gnc-commodity.c removed old_internal_name from gnc_quote_source_s (deprecated) 2024-02-17 22:52:40 +08:00
gnc-commodity.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-commodity.hpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-date-p.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gnc-date.cpp Move gnc_list_formatter from gnc-date to gnc-ui-util. 2024-01-06 18:16:31 -08:00
gnc-date.h Move gnc_list_formatter from gnc-date to gnc-ui-util. 2024-01-06 18:16:31 -08:00
gnc-datetime.cpp Remove some unused variables with obviously no side effects 2023-02-06 14:19:22 +00:00
gnc-datetime.hpp Rename GncDateTime's ymd to gnc_ymd to avoid a name conflict with Carbon. 2023-01-09 14:36:06 -08:00
gnc-engine.c Bug 798237 - Logging during XML file loading degrades performance... 2021-09-14 15:15:11 -07:00
gnc-engine.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-euro.c Remove non-ISO4217 currency codes from gnc-euro table. 2022-09-30 15:12:19 -07:00
gnc-euro.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-event.c Prevent gcc from searching config.h in the current directory 2017-10-26 14:05:17 +02:00
gnc-event.h Restructure the src directory 2017-08-10 18:45:00 +02:00
gnc-features.cpp [gnc-features.cpp] remove_if requires <algorithm> 2023-04-29 08:17:22 +08:00
gnc-features.h Refactor gnc-features. 2023-04-28 16:31:07 -07:00
gnc-hooks.c gnc-hooks - factor out scm calls into a separate source file 2019-12-06 19:59:11 +01:00
gnc-hooks.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-int128.cpp [-Wunused-value] - remove 2023-02-16 09:19:19 +00:00
gnc-int128.hpp Silence Clang deprecation warnings about sprintf. 2023-01-23 12:54:25 -08:00
gnc-lot-p.h Add #ifdef __cplusplus extern "C" {} wrappers to .h files 2024-02-08 21:26:47 +08:00
gnc-lot.cpp [gnc-lot.cpp] convert to cpp 2024-02-09 17:23:51 +08:00
gnc-lot.h [gnc-lot.c] speed up gncInvoiceGetInvoiceFromLot by caching invoice 2020-04-30 23:56:26 +08:00
gnc-numeric.cpp [gnc-numeric.cpp] parse integer + fraction; e.g."10 1/4" == 10.25 2023-08-29 08:30:30 +08:00
gnc-numeric.h [gnc-numeric.cpp] parse integer + fraction; e.g."10 1/4" == 10.25 2023-08-29 08:30:30 +08:00
gnc-numeric.hpp Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
gnc-option-date.cpp Bug 798946 - start/end of current/last quarter have off-by-one error 2024-02-17 12:52:17 -08:00
gnc-option-date.hpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-option-impl.cpp Merge branch 'free-guid-string' into stable #1777 2023-09-20 07:29:16 +08:00
gnc-option-impl.hpp Bug 799134 - Fails to build with GCC 14 (‘find_if’ is not a member... 2023-11-21 15:27:04 -08:00
gnc-option-ui.hpp [options] Move options from app-utils to engine. 2022-08-25 22:09:56 -07:00
gnc-option-uitype.hpp Bug753307 - Custom Report be selectable as default Report for Printing 2023-02-01 16:29:11 +00:00
gnc-option.cpp [c++options] Correctly implement handling Fancy Date Format. 2023-09-19 16:05:53 -07:00
gnc-option.hpp [c++options] Correctly implement handling Fancy Date Format. 2023-09-19 16:05:53 -07:00
gnc-optiondb-impl.hpp [c++options]Really fix the gnc_option_db_lookup_string_value leak 2023-03-06 11:43:50 -08:00
gnc-optiondb.cpp [c++options] Correctly implement handling Fancy Date Format. 2023-09-19 16:05:53 -07:00
gnc-optiondb.h [c++options]Really fix the gnc_option_db_lookup_string_value leak 2023-03-06 11:43:50 -08:00
gnc-optiondb.hpp [c++options] Correctly implement handling Fancy Date Format. 2023-09-19 16:05:53 -07:00
gnc-pricedb-p.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-pricedb.cpp Bug 799104 - "Asset Chart" broken 2023-10-13 16:58:54 -07:00
gnc-pricedb.h [gnc-pricedb] add user:stock-transaction price source 2022-03-11 14:31:02 +08:00
gnc-rational-rounding.hpp Bug 796949 - Fix division and rounding of zero. 2019-05-11 23:23:59 +01:00
gnc-rational.cpp Adjust catch syntax to avoid GCC8 warnings. 2018-04-03 22:02:44 -04:00
gnc-rational.hpp Restructure the src directory 2017-08-10 18:45:00 +02:00
gnc-session.c Decouple QofBook creation from QofSession. 2020-05-08 15:59:41 -07:00
gnc-session.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-timezone.cpp Fix UAF in xaccFreeSplit. 2023-11-02 12:58:55 -07:00
gnc-timezone.hpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gnc-uri-utils.c Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
gnc-uri-utils.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncAddress.c Remove extra semicolons 2023-01-24 13:22:18 +00:00
gncAddress.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncAddressP.h Restructure the src directory 2017-08-10 18:45:00 +02:00
gncBillTerm.c Merge branch 'maint' 2023-01-26 18:40:44 +08:00
gncBillTerm.h Merge Richard Cohen's 'cleanup' into master. 2023-01-24 12:05:47 -08:00
gncBillTermP.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncBusiness.c Prevent gcc from searching config.h in the current directory 2017-10-26 14:05:17 +02:00
gncBusiness.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gncCustomer.c Remove some unused variables with obviously no side effects 2023-02-06 14:19:22 +00:00
gncCustomer.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gncCustomerP.h Cache current owner balances 2018-09-23 16:00:41 +02:00
gncEmployee.c Remove extra semicolons 2023-01-24 13:22:18 +00:00
gncEmployee.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gncEmployeeP.h Cache current owner balances 2018-09-23 16:00:41 +02:00
gncEntry.c Merge branch 'maint' 2023-01-26 18:40:44 +08:00
gncEntry.h Merge Richard Cohen's 'cleanup' into master. 2023-01-24 12:05:47 -08:00
gncEntryP.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncIDSearch.c Revert b5f5129f7 using gnc_list_length_cmp 2021-11-02 23:34:26 +08:00
gncIDSearch.h Prevent gcc from searching config.h in the current directory 2017-10-26 14:05:17 +02:00
gncInvoice.c Fix crash in test-engine on Arch 2023-05-15 20:03:23 +01:00
gncInvoice.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gncInvoiceP.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncJob.c Remove some unused variables with obviously no side effects 2023-02-06 14:19:22 +00:00
gncJob.h Merge branch 'maint' 2023-01-26 18:40:44 +08:00
gncJobP.h Restructure the src directory 2017-08-10 18:45:00 +02:00
gncOrder.c Remove extra semicolons 2023-01-24 13:22:18 +00:00
gncOrder.h Merge Richard Cohen's 'cleanup' into master. 2023-01-24 12:05:47 -08:00
gncOrderP.h Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
gncOwner.c Bug 798925 - Python bindings: "invalid unclassed pointer... 2023-09-11 17:40:48 -07:00
gncOwner.h Bug 798950 - Bug Report: Incorrect Currency Conversion and Provider Invoice Payment Recording 2023-08-21 16:01:27 +02:00
gncOwnerP.h Cache current owner balances 2018-09-23 16:00:41 +02:00
gncTaxTable.c Merge branch 'maint' 2023-01-26 18:40:44 +08:00
gncTaxTable.h Merge Richard Cohen's 'cleanup' into master. 2023-01-24 12:05:47 -08:00
gncTaxTableP.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
gncVendor.c Remove some unused variables with obviously no side effects 2023-02-06 14:19:22 +00:00
gncVendor.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
gncVendorP.h Cache current owner balances 2018-09-23 16:00:41 +02:00
guid.cpp Eliminate a frequent exception in guid_from_string 2023-08-10 14:05:10 -07:00
guid.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
guid.hpp Move operator==(const GncGUID&, const GncGUID&) to guid.[ch]pp. 2023-03-18 13:53:49 -07:00
iso-4217-currencies.xml edit: use &apos; instead of ` symbol 2023-04-24 02:04:35 +05:00
iso-currencies-to-c.xsl Restructure the src directory 2017-08-10 18:45:00 +02:00
kvp_doc.txt Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
kvp-frame.cpp Fix incorrect logging after switch fallthrough 2023-06-06 15:16:39 +01:00
kvp-frame.hpp [kvp-frame.cpp] expose iterator, skip inexistent frame 2022-04-09 17:45:44 +08:00
kvp-value.cpp [engine] Remove two replace functions from KvpValue 2023-04-02 21:12:50 +02:00
kvp-value.hpp Remove unused boxed type gnc_value_list 2023-05-25 14:42:28 +01:00
policy-p.h Merge branch 'maint' 2022-04-14 18:02:17 -07:00
policy.c [-Wunused-function] - remove 2023-02-16 09:20:59 +00:00
policy.h Remove the incomplete book-currency code. 2021-07-10 17:29:11 -07:00
qof-backend.cpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qof-backend.hpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qof-gobject.h Remove extra semicolons 2023-01-24 13:22:18 +00:00
qof-string-cache.cpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qof-string-cache.h Use const return values for string cache 2021-07-11 18:54:49 +01:00
qof-win32.cpp Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
qof.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qofbackend.h Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
qofbook-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofbook.cpp Fix UAF in xaccFreeSplit. 2023-11-02 12:58:55 -07:00
qofbook.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
qofbook.hpp Refactor gnc-features. 2023-04-28 16:31:07 -07:00
qofbookslots.h Allow to select saved report on print invoice button 2023-02-02 14:05:53 +00:00
qofchoice.cpp Fix build with glib2 2.67.x. 2021-02-16 13:23:16 -08:00
qofchoice.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofclass-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofclass.cpp Fix build with glib2 2.67.x. 2021-02-16 13:23:16 -08:00
qofclass.h Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
qofevent-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofevent.cpp Fix build with glib2 2.67.x. 2021-02-16 13:23:16 -08:00
qofevent.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofid-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofid.cpp Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qofid.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
qofinstance-p.h Timespec removal, engine odds-and-ends. 2018-08-13 11:52:43 -07:00
qofinstance.cpp Fix dereference of expired temporaries. 2023-03-31 11:27:33 -07:00
qofinstance.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
qoflog.cpp Use const references for for-loops to avoid unnecessary copies 2023-01-31 14:44:57 +00:00
qoflog.h Don't use extern "C" around #includes 2023-03-03 18:55:42 +00:00
qofobject-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofobject.cpp [-Wunused-function] - remove 2023-02-16 09:20:59 +00:00
qofobject.h Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
qofquery-p.h Restructure the src directory 2017-08-10 18:45:00 +02:00
qofquery.cpp Refactor: Remove some unnecessary uses of memcpy 2023-06-15 11:10:58 +01:00
qofquery.h Fix various typos 2022-04-08 14:12:50 -04:00
qofquerycore-p.h Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file 2018-04-26 23:06:36 +02:00
qofquerycore.cpp Avoid unnecessary g_list_length in equality functions 2021-10-21 17:56:15 +08:00
qofquerycore.h Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file 2018-04-26 23:06:36 +02:00
qofsession.cpp Fix some typos in comments 2023-05-13 13:00:25 +01:00
qofsession.h use same order in comment as in definition of SessionOpenMode enum 2020-07-04 22:26:35 +02:00
qofsession.hpp Fix some return of ptr-to-temporary errors 2020-09-25 12:31:52 -07:00
qofutil.cpp Bug 798679 - Unicode normalization should be used for comparison but not stored. 2023-01-04 13:19:36 -08:00
qofutil.h scanf supports %lld since C++11, C99 2023-05-15 13:21:30 +01:00
Query.c Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file 2018-04-26 23:06:36 +02:00
Query.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
README Restructure the src directory 2017-08-10 18:45:00 +02:00
README.query-api Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file 2018-04-26 23:06:36 +02:00
Recurrence.cpp [Recurrence.cpp] convert to cpp 2024-02-09 17:23:51 +08:00
Recurrence.h recurrencePeriodTypeToString and recurrenceWeekendAdjustToString g_strdup only when necessary 2023-11-06 14:12:17 -08:00
SchedXaction.c Refactor: Remove some unnecessary uses of memcpy 2023-06-15 11:10:58 +01:00
SchedXaction.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
Scrub2.c Make xaccScrubUtilityGetOrMakeAccount static and remove ScrubP.h 2021-01-27 17:44:21 -08:00
Scrub2.h Fix typos in libgnucash/ 2021-03-02 01:15:32 +01:00
Scrub3.c Prevent gcc from searching config.h in the current directory 2017-10-26 14:05:17 +02:00
Scrub3.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
Scrub.c [Scrub.c] 8628ca8715 rewritten to avoid QofQuery 2023-06-12 23:59:37 +08:00
Scrub.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
ScrubBudget.c [budget-feature] move unset_feature call to gnc_budget_gui_delete_budget 2022-10-31 12:03:58 +08:00
ScrubBudget.h [1/2][Scrubbudget.c] use heuristics to scrub budget signs 2021-12-03 17:40:21 +08:00
ScrubBusiness.c Bug 798958 - gncScrubLotLinks will infinite loop in some conditions 2023-07-27 14:46:55 -07:00
ScrubBusiness.h Update bug tracker URL 2018-07-13 09:49:33 -07:00
Split.cpp Revert "Fix two use-after-free issues found by address sanitizer." 2024-02-19 21:11:54 -08:00
Split.h Bug 798983 - Empty Orphan account appears after entering transactions in 5.3 2023-09-08 15:08:44 -07:00
SplitP.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
SX-book-p.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
SX-book.c Merge branch 'maint' 2023-01-26 18:40:44 +08:00
SX-book.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
SX-ttinfo.c Prevent gcc from searching config.h in the current directory 2017-10-26 14:05:17 +02:00
SX-ttinfo.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
Transaction.cpp Revert "Fix two use-after-free issues found by address sanitizer." 2024-02-19 21:11:54 -08:00
Transaction.h Bug 798983 - Empty Orphan account appears after entering transactions in 5.3 2023-09-08 15:08:44 -07:00
TransactionP.h Merge branch 'maint' 2023-02-27 16:24:44 -08:00
TransLog.c Remove some unused variables with obviously no side effects 2023-02-06 14:19:22 +00:00
TransLog.h Use internal extern "C" { ... } for C++ 2023-01-23 18:40:01 +00:00
xlate.pl Restructure the src directory 2017-08-10 18:45:00 +02:00

This directory contains code for the accounting engine.
Its fairly clean but far from perfect, and it certainly
lacks advanced features.

There should be no GUI code in this subdirectory, and,
ideally, it should build cleanly and independently of 
any GUI elements or assumptions.

For design documentation, please see the file "design.txt",
and also, look at the header files carefully.  The documentation
for each routine is in the header files for that routine.

September 1998