Christopher Lam
c06191a656
Transaction.c: avoid slow g_list_nth_data
2019-12-05 13:06:11 +08:00
John Ralls
c23f3f05e3
Fix deprecated G_TYPE_INSTANCE_GET_PRIVATE and G_INLINE_FUNC
...
with the function/declaration that they substituted.
Note that this doesn't use the recommended new GObject creation macros
because the class names in libgnucash/engine don't follow the gnome
naming convention.
2019-09-12 15:25:42 -07:00
John Ralls
e6e2258a74
Bug 797356 - ninja check fails with GCC-9
2019-09-09 14:44:10 -07:00
Christian Stimming
eb9e45bc20
Sorting speed-up: Cache the bool value of Transaction's is_closing property.
...
This value is queried on each comparison of split or txn sort function,
which means it is called quite a lot. Avoiding the KVP lookup of this
property gains a lot in terms of CPU cycles.
2018-12-31 14:50:36 +01:00
Robert Fewell
2634f23f87
Bug 767772 - Associated file with transaction is lost
...
when moving entry between accounts
When using the cut transaction option the 'associated file' value was
not being pasted to the new transaction. Added scheme code to get this
value and save it to new transaction when using 'cut/copy' and then
'paste' operations. When using the duplicate option, a dialogue allows
you to keep the copied association or not. It does not get copied for
autocomplete.
2018-12-28 09:45:50 +01:00
John Ralls
4ffeb3efac
Ensure that a dereferenced variable isn't NULL.
...
Found by clang static analyzer.
2018-11-30 15:08:41 +09:00
Geert Janssens
11af81b51b
Bug 789674 - Close Book tool regression
2018-11-20 18:55:09 +01:00
Robert Fewell
d458e13a7f
Remove KVP for assoc_uri when passed an empty string
...
Change xaccTransSetAssociation so if an empty string is passed the KVP
entry is removed instead of leaving an empty stub.
2018-11-15 15:30:35 +00:00
John Ralls
284d6c1456
Fix travis failure try 2.
...
stdint.h for Transaction.c too.
Also get rid of unused timeval decl.
2018-11-11 17:43:24 +09:00
John Ralls
710b122b24
Bug 796940 - Invalid transaction date-posted KVP causes...
...
date-posted to not be saved.
Check the stored GDate for being in the GncDateTime range as well
as the GDate range before returning it and check trans->date-posted
against INT64_MAX instead of 0 before changing it.
2018-11-11 17:07:34 +09:00
Di Mang
893383ce9b
removing double semicolons at the end of lines
2018-09-30 19:10:50 +02:00
Geert Janssens
4e71629966
Fix memory leak in xaccTransRetDateDue
2018-09-14 10:47:31 +02:00
Geert Janssens
1117027f72
An empty GValue is interpreted as NULL reason, which is still a valid cache
...
Ignoring this would make caching almost useless as there are typically
only very few read-only transactions.
2018-09-10 10:24:49 +02:00
John Ralls
a19dcc7bd4
Fix crash when there's no TRANS_READ_ONLY_REASON slot.
...
Unsetting an empty g_value raises a fatal error, causing tests to fail
in some environments.
g_free() handles NULLs itself, no need to protect it.
2018-09-09 15:02:53 -07:00
Geert Janssens
d069b67d48
Fix memory leak in xaccTransGetReadOnly
...
In addition implement a cache for this value as suggested in the comments
as this function is called on every transaction commit.
2018-09-09 22:50:05 +02:00
John Ralls
358cd979d9
Remove Timespec from the main engine classes (Transaction, Split, & Account.
2018-08-13 11:52:42 -07:00
John Ralls
c8b372e390
Convert GNC_TYPE_TIMESPEC to GNC_TYPE_TIME64, Kvp::Type::Timespec to Kvp::Type::Time64
...
They have to go together because of using gvalues to hide KVP from most of
GnuCash.
2018-08-12 16:12:19 -07:00
Geert Janssens
c71204628d
Bug 795031 - 3.0 Crashes on loading when opening 2.6.19 file
2018-04-26 23:06:36 +02:00
John Ralls
6b49b3ba4c
Bug 792763 - deleting a transaction can cause a SIGSEGV
...
Prevent a NULL transaction from crashing xaccTransCountSplits and
prevent gnc_plugin_business_update_menus from calling it with a
NULL transaction.
2018-02-02 13:05:20 -08:00
lmat
1f050fd1e5
Transaction members Timespec->time64
2018-01-08 13:01:29 +11:00
lmat
9a86dd222b
gncInvoice uses time64
2018-01-08 13:01:29 +11:00
lmat
f77369bb96
Removing timspec from some xml parsing
...
And several other sprawling references that are connected in one
way or another.
2018-01-08 13:01:29 +11:00
lmat
588fcb6ed2
Transaction getVoidTime uses time64.
2018-01-08 13:01:29 +11:00
lmat
b5aad8c7bb
Renaming time64 function for consistency
2018-01-08 13:01:29 +11:00
lmat
61d4aaaf08
Adding some time64 alternatives
2018-01-08 13:01:29 +11:00
lmat
ee56f5df78
Adding some time64 API functions
2018-01-08 13:01:29 +11:00
John Ralls
a6a46d7cdc
Test struct tm* returns from gnc_gmtime and gnc_localtime
...
To ensure that we don't crash for dereffing a nullptr.
2017-12-26 15:10:05 -08:00
lmat
805549ba24
Rename qofinstance function
...
This function was supposed to be renamed a while back. I had named it
this way for debugging purposes.
2017-12-21 07:39:33 -05:00
lmat
9d7ec35ce5
Removed qof_instance_set_kvp, qof_instance_get_kvp
...
And replaced them with versions that take lists of key path elements.
This is in an effort to eliminate the parsing of kvp keys.
2017-12-21 07:39:32 -05:00
John Ralls
aeb2e65ff1
Fix posted-date scrub incrementing the day in central pacific timezones.
2017-12-12 21:02:11 -08:00
Geert Janssens
0dfb921e86
Add functions to retrieve a copy of splits of a certain type from business transactions
2017-11-18 16:55:18 +01:00
Geert Janssens
1238b9d8cd
Prevent gcc from searching config.h in the current directory
...
This will avoid a ninja-build from picking up a config.h generated by the autotools build
(in the root build directory). Picking up the wrong config.h may lead to all kinds of
subtle issues if the autotools run was done with different options than the cmake run.
2017-10-26 14:05:17 +02:00
John Ralls
f7ce8bcbb3
Disable creating a date string to maybe use in a PINFO message.
...
Creating a date string occupied nearly all of the time required to
set a date on a transaction, generally to no benefit at all.
2017-08-20 21:31:07 +02:00
Geert Janssens
83d14e1c1c
Restructure the src directory
...
It is split into
- /libgnucash (for the non-gui bits)
- /gnucash (for the gui)
- /common (misc source files used by both)
- /bindings (currently only holds python bindings)
This is the first step in restructuring the code. It will need much
more fine tuning later on.
2017-08-10 18:45:00 +02:00