X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fhb-transaction.c;h=e6fe03133c65edbaf5a972ab2d3ae522b18fc3fc;hb=ee5038e6ccae412295b44be762d3445419042d59;hp=f7acc90f2791485c91eaf4a7dbd54ddff765b963;hpb=e479b37a8ea13230b81b43ecba00f89586a8f91a;p=chaz%2Fhomebank diff --git a/src/hb-transaction.c b/src/hb-transaction.c index f7acc90..e6fe031 100644 --- a/src/hb-transaction.c +++ b/src/hb-transaction.c @@ -23,6 +23,9 @@ #include "hb-tag.h" #include "hb-split.h" +#include "ext.h" +#include "refcount.h" + /****************************************************************************/ /* Debug macro */ /****************************************************************************/ @@ -82,10 +85,10 @@ da_transaction_clean(Transaction *item) void da_transaction_free(Transaction *item) { - if(item != NULL) + if(rc_unref(item)) { da_transaction_clean(item); - g_free(item); + rc_free(item); } } @@ -93,7 +96,7 @@ da_transaction_free(Transaction *item) Transaction * da_transaction_malloc(void) { - return g_malloc0(sizeof(Transaction)); + return rc_alloc(sizeof(Transaction)); } @@ -152,7 +155,7 @@ Archive *arc; Transaction *da_transaction_clone(Transaction *src_item) { -Transaction *new_item = g_memdup(src_item, sizeof(Transaction)); +Transaction *new_item = rc_dup(src_item, sizeof(Transaction)); DB( g_print("da_transaction_clone\n") ); @@ -531,6 +534,9 @@ gchar swap; account_balances_add (child); + GValue txn_value = G_VALUE_INIT; + ext_hook("transaction_inserted", EXT_TRANSACTION(&txn_value, child), NULL); + } } @@ -994,6 +1000,9 @@ Account *acc; { transaction_xfer_search_or_add_child(parent, newope, newope->kxferacc); } + + GValue txn_value = G_VALUE_INIT; + ext_hook("transaction_inserted", EXT_TRANSACTION(&txn_value, newope), NULL); } return newope;