From b03c186bc19024dc916ac8e9c4b0221ea6e25501 Mon Sep 17 00:00:00 2001 From: Linas Vepstas Date: Sun, 17 Aug 2003 06:37:24 +0000 Subject: [PATCH] more silly bug fixes for bugs I just introduced a few hours ago git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9103 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/gnc-commodity.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/engine/gnc-commodity.c b/src/engine/gnc-commodity.c index 78c5ce1ca1..4ddb4e9d31 100644 --- a/src/engine/gnc-commodity.c +++ b/src/engine/gnc-commodity.c @@ -509,7 +509,7 @@ gnc_commodity_destroy(gnc_commodity * cm) /* Set through accessor functions */ cm->quote_source = NULL; - g_cache_remove(str_cache, cm->quote_tz); + if (cm->quote_tz) g_cache_remove(str_cache, cm->quote_tz); cm->quote_tz = NULL; /* Automatically generated */ @@ -550,8 +550,10 @@ gnc_commodity_clone(gnc_commodity *src) dest->mark = 0; dest->quote_flag = src->quote_flag; - dest->quote_source = g_cache_insert(str_cache, src->quote_source); - dest->quote_tz = g_cache_insert(str_cache, src->quote_tz); + + gnc_commodity_set_quote_source (dest, gnc_commodity_get_quote_source (src)); + if (src->quote_tz) + dest->quote_tz = g_cache_insert(str_cache, src->quote_tz); reset_printname(dest); reset_unique_name(dest); @@ -807,12 +809,10 @@ gnc_commodity_set_quote_flag(gnc_commodity *cm, const gboolean flag) void gnc_commodity_set_quote_source(gnc_commodity *cm, gnc_quote_source *src) { - GCache *str_cache = gnc_engine_get_string_cache (); ENTER ("(cm=%p, src=%p(%s))", cm, src, src ? src->internal_name : "unknown"); if(!cm) return; - g_cache_remove(str_cache, cm->quote_source); - cm->quote_source = g_cache_insert(str_cache, src); + cm->quote_source = src; LEAVE(" "); } @@ -828,8 +828,11 @@ gnc_commodity_set_quote_tz(gnc_commodity *cm, const char *tz) if(!cm) return; - g_cache_remove(str_cache, cm->quote_tz); - if (cm->quote_tz) cm->quote_tz = NULL; + if (cm->quote_tz) + { + g_cache_remove(str_cache, cm->quote_tz); + cm->quote_tz = NULL; + } if (tz && *tz) cm->quote_tz = g_cache_insert(str_cache, (gpointer)tz);