From 498d9d905b97da9d1387fe7e94c1754e483f52ad Mon Sep 17 00:00:00 2001 From: Derek Atkins Date: Sat, 23 Dec 2006 21:10:47 +0000 Subject: [PATCH] guile 1.8's SCM_EXACTP() throws an error when passed a non-number. So make sure we test SCM_NUMBERP() before SCM_EXACTP() This causes gnucash to crash on e.g. FC6 from the File Properties Menu. BP git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15252 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/kvp-scm.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/engine/kvp-scm.c b/src/engine/kvp-scm.c index d46a381703..c1e3fc8991 100644 --- a/src/engine/kvp-scm.c +++ b/src/engine/kvp-scm.c @@ -23,13 +23,17 @@ gnc_kvp_value_ptr_p(SCM arg) KvpValue * gnc_scm_to_kvp_value_ptr(SCM val) { - if(SCM_EXACTP (val) && gnc_gh_gint64_p(val)) + if(SCM_NUMBERP(val)) { - return kvp_value_new_gint64(gnc_scm_to_gint64(val)); - } - else if(SCM_NUMBERP(val)) - { - return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__)); + /* in guile 1.8 (exact? ) only works on numbers */ + if(SCM_EXACTP (val) && gnc_gh_gint64_p(val)) + { + return kvp_value_new_gint64(gnc_scm_to_gint64(val)); + } + else + { + return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__)); + } } else if(gnc_numeric_p(val)) {