]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/lily-guile-macros.hh
Run `make grand-replace'.
[lilypond.git] / lily / include / lily-guile-macros.hh
index 0144523ffa1adf6289068e7b1c66acdf7626196d..495b86144f24188c20fab8d9f5b46f180da13a98 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #ifndef LILY_GUILE_MACROS_HH
@@ -195,38 +195,25 @@ void ly_check_name (string cxx, string fname);
   TODO: include modification callback support here, perhaps
   through intermediate Grob::instrumented_set_property( .. __LINE__ ).
  */
-#define set_property(x, y) internal_set_property (ly_symbol2scm (x), y)  
+#define set_property(x, y) instrumented_set_property (ly_symbol2scm (x), y, __FILE__, __LINE__, __FUNCTION__)
 #else
 #define set_property(x, y) internal_set_property (ly_symbol2scm (x), y)
 #endif
 
 
-extern int function_argument_direction;
 
-#define LY_FUNC_NOTE_FIRST_ARG(a)  \
-  SCM *first_arg_ptr = &a; \
-  int stack_grow_dir = 0;  \
-  stack_grow_dir = ((void*) &first_arg_ptr < (void*) &stack_grow_dir) ? -1 : 1;
-
-#define LY_ASSERT_TYPE(pred, number) \
+#define LY_ASSERT_TYPE(pred, var, number)                                      \
   {                                                                    \
-    if (!pred (first_arg_ptr[(number-1)*stack_grow_dir]))              \
+    if (!pred (var)) \
       {                                                                        \
        scm_wrong_type_arg_msg(mangle_cxx_identifier (__FUNCTION__).c_str(), \
-                              number, first_arg_ptr[(number-1)*stack_grow_dir], \
+                              number, var, \
                               predicate_to_typename ((void*) &pred).c_str()); \
       }                                                                        \
   }
 
-#define LY_ASSERT_SMOB(klass, number) LY_ASSERT_TYPE(klass::unsmob, number)
-
-
-#define LY_ASSERT_FIRST_TYPE(pred, var)                                \
-  LY_FUNC_NOTE_FIRST_ARG(var);                                 \
-  LY_ASSERT_TYPE(pred, 1);
+#define LY_ASSERT_SMOB(klass, var, number) LY_ASSERT_TYPE(klass::unsmob, var, number)
 
-#define LY_ASSERT_FIRST_SMOB(klass, var)                        \
-  LY_ASSERT_FIRST_TYPE(klass::unsmob, var)
 
 
 #endif /* LILY_GUILE_MACROS_HH */