/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2005--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2005--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#endif
/*
- TODO: rename me to ly_c_lily_module_eval
-
we don't have to protect the result; it's already part of the
exports list of the module.
*/
if (__builtin_constant_p ((x))) \
{ \
if (!cached) \
- value = cached = scm_eval (scm_from_locale_symbol (x), \
- global_lily_module); \
+ value = cached = \
+ scm_variable_ref (scm_c_module_lookup (global_lily_module, (x))); \
} \
else \
- value = scm_eval (scm_from_locale_symbol (x), global_lily_module); \
+ value = \
+ scm_variable_ref (scm_c_module_lookup (global_lily_module, (x))); \
value; \
})
#define DECLARE_SCHEME_CALLBACK(NAME, ARGS) \
static SCM NAME ARGS; \
static SCM NAME ## _proc
-#define ADD_TYPE_PREDICATE(func, type_name) \
- void \
- func ## _type_adder () \
- {\
- ly_add_type_predicate ((Type_predicate_ptr)func, type_name); \
- }\
- ADD_SCM_INIT_FUNC(func ## _type_adder_ctor, \
- func ## _type_adder);
-#define ADD_TYPE_PREDICATE(func, type_name) \
- void \
- func ## _type_adder () \
- {\
- ly_add_type_predicate ((Type_predicate_ptr)func, type_name); \
- }\
- ADD_SCM_INIT_FUNC(func ## _type_adder_ctor, \
- func ## _type_adder);
string mangle_cxx_identifier (string);
-void ly_add_type_predicate (void *ptr, string name);
+void ly_add_type_predicate (void *ptr, const string &name);
string predicate_to_typename (void *ptr);
/*
#define MAKE_SCHEME_CALLBACK(TYPE, FUNC, ARGCOUNT) \
MAKE_SCHEME_CALLBACK_WITH_OPTARGS(TYPE,FUNC,ARGCOUNT, 0, "");
-void ly_add_function_documentation (SCM proc, string fname, string varlist, string doc);
-void ly_check_name (string cxx, string fname);
+void ly_add_function_documentation (SCM proc, const string &fname, const string &varlist, const string &doc);
+void ly_check_name (const string &cxx, const string &fname);
#define ADD_SCM_INIT_FUNC(name, func) \
class name ## _scm_initter \
} \
}
-#define LY_ASSERT_SMOB(klass, var, number) LY_ASSERT_TYPE(klass::unsmob, var, number)
+#define LY_ASSERT_SMOB(klass, var, number) LY_ASSERT_TYPE(klass::is_smob, var, number)
#endif /* LILY_GUILE_MACROS_HH */