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
This commit is contained in:
Derek Atkins 2006-12-23 21:10:47 +00:00
parent aa665d1d89
commit 498d9d905b

View File

@ -23,13 +23,17 @@ gnc_kvp_value_ptr_p(SCM arg)
KvpValue * KvpValue *
gnc_scm_to_kvp_value_ptr(SCM val) 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)); /* in guile 1.8 (exact? ) only works on numbers */
} if(SCM_EXACTP (val) && gnc_gh_gint64_p(val))
else if(SCM_NUMBERP(val)) {
{ return kvp_value_new_gint64(gnc_scm_to_gint64(val));
return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__)); }
else
{
return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__));
}
} }
else if(gnc_numeric_p(val)) else if(gnc_numeric_p(val))
{ {