r15283 - gnucash/branches/2.0 - guile 1.8's SCM_EXACTP() throws an error when passed a non-number.
Derek Atkins
warlord at cvs.gnucash.org
Sat Dec 30 14:45:38 EST 2006
Author: warlord
Date: 2006-12-30 14:45:37 -0500 (Sat, 30 Dec 2006)
New Revision: 15283
Trac: http://svn.gnucash.org/trac/changeset/15283
Modified:
gnucash/branches/2.0/
gnucash/branches/2.0/ChangeLog
gnucash/branches/2.0/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.
Approved by jsled
Merge from r15252
Property changes on: gnucash/branches/2.0
___________________________________________________________________
Name: svk:merge
- 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/2.0:697
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13800
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:13282
+ 3889ce50-311e-0410-a464-f059747ec5d1:/local/gnucash/branches/2.0:697
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13801
d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/trunk:13282
Modified: gnucash/branches/2.0/ChangeLog
===================================================================
--- gnucash/branches/2.0/ChangeLog 2006-12-30 19:45:19 UTC (rev 15282)
+++ gnucash/branches/2.0/ChangeLog 2006-12-30 19:45:37 UTC (rev 15283)
@@ -8,6 +8,11 @@
* Load and store a commodity's KVP-frame (IFF it's non-empty).
This would let us store something like an Asset Class.
+ * 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.
+
2006-12-30 Christian Stimming <stimming at tuhh.de>
* Check for potentially failed utf8 conversion of locale strings.
Modified: gnucash/branches/2.0/src/engine/kvp-scm.c
===================================================================
--- gnucash/branches/2.0/src/engine/kvp-scm.c 2006-12-30 19:45:19 UTC (rev 15282)
+++ gnucash/branches/2.0/src/engine/kvp-scm.c 2006-12-30 19:45:37 UTC (rev 15283)
@@ -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