]> git.donarmstrong.com Git - lilypond.git/commitdiff
use scm_throw with ly-file-failed key for property check failures.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 10 Jan 2007 02:06:48 +0000 (03:06 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 10 Jan 2007 02:06:48 +0000 (03:06 +0100)
lily/grob-property.cc
lily/lily-guile.cc
lily/music.cc

index e8e74059ed3b6ca48c0a241b7aa8e566e5130640..5e49d8e8ec4747e765c567d9629073bc68bd8c17 100644 (file)
@@ -102,9 +102,9 @@ Grob::internal_set_value_on_alist (SCM *alist, SCM sym, SCM v)
     {
       if (!ly_is_procedure (v)
          && !is_simple_closure (v)
-         && v != ly_symbol2scm ("calculation-in-progress") 
-         && !type_check_assignment (sym, v, ly_symbol2scm ("backend-type?")))
-       abort ();
+         && v != ly_symbol2scm ("calculation-in-progress"))
+       type_check_assignment (sym, v, ly_symbol2scm ("backend-type?"));
+
       check_interfaces_for_property (this, sym);
     }
 
@@ -128,11 +128,8 @@ Grob::internal_get_property_data (SCM sym) const
   if (do_internal_type_checking_global && scm_is_pair (handle))
     {
       SCM val = scm_cdr (handle);
-      if (!ly_is_procedure (val)
-         && !is_simple_closure (val)
-         && !type_check_assignment (sym, val, 
-                                 ly_symbol2scm ("backend-type?")))
-       abort ();
+      if (!ly_is_procedure (val) && !is_simple_closure (val))
+       type_check_assignment (sym, val, ly_symbol2scm ("backend-type?"));
 
       check_interfaces_for_property (this, sym);
     }
index 726470acee3f9cf4188b67d35d41bd33cd33997f..7c61e123da8d05c91e022ac76bb2c2178caf5a82 100644 (file)
@@ -460,7 +460,8 @@ type_check_assignment (SCM sym, SCM val, SCM type_symbol)
 
       /* Be strict when being anal :) */
       if (do_internal_type_checking_global)
-       abort ();
+       scm_throw (ly_symbol2scm ("ly-file-failed"), scm_list_3 (ly_symbol2scm ("typecheck"),
+                                                                sym, val));
 
       warning (_ ("doing assignment anyway"));
     }
index eaf750ede22d95486a53d5c55da1f86ca2fd486e..b22e243139690aa239ea475d7a6bff176675afe0 100644 (file)
@@ -63,8 +63,7 @@ Music::copy_mutable_properties () const
 void
 Music::type_check_assignment (SCM s, SCM v) const
 {
-  if (!::type_check_assignment (s, v, ly_symbol2scm ("music-type?")))
-    abort ();
+  ::type_check_assignment (s, v, ly_symbol2scm ("music-type?"));
 }
 
 Music::Music (Music const &m)