AUDIT: r15252 - gnucash/trunk - guile 1.8's SCM_EXACTP() throws an error when passed a non-number.
Derek Atkins
warlord at cvs.gnucash.org
Sat Dec 23 16:10:48 EST 2006
Author: warlord
Date: 2006-12-23 16:10:47 -0500 (Sat, 23 Dec 2006)
New Revision: 15252
Trac: http://svn.gnucash.org/trac/changeset/15252
Modified:
gnucash/trunk/
gnucash/trunk/src/engine/kvp-scm.c
Log:
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
Property changes on: gnucash/trunk
___________________________________________________________________
Name: svk:merge
- 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1024
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:13714
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366
+ 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/swig-redo:802
3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/trunk:1024
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:13759
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk2:13366
Modified: gnucash/trunk/src/engine/kvp-scm.c
===================================================================
--- gnucash/trunk/src/engine/kvp-scm.c 2006-12-23 18:50:20 UTC (rev 15251)
+++ gnucash/trunk/src/engine/kvp-scm.c 2006-12-23 21:10:47 UTC (rev 15252)
@@ -23,14 +23,18 @@
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));
+ /* 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(SCM_NUMBERP(val))
- {
- return kvp_value_new_double(scm_num2dbl(val, __FUNCTION__));
- }
else if(gnc_numeric_p(val))
{
return kvp_value_new_gnc_numeric(gnc_scm_to_numeric(val));
More information about the gnucash-changes
mailing list