X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fsmobs.hh;h=7ef46b23e41106eb444907d665cd1a6aecac80c8;hb=14f464d957b6a68710f0364fc7507b63eb0fcee6;hp=889d86a8cab3a342b374593a7a6afa1879d98f9f;hpb=c6758d6d12e33779fc81218693d5650682d8a1ca;p=lilypond.git diff --git a/lily/include/smobs.hh b/lily/include/smobs.hh index 889d86a8ca..7ef46b23e4 100644 --- a/lily/include/smobs.hh +++ b/lily/include/smobs.hh @@ -120,7 +120,7 @@ debugging purposes. If the class does not define this function, the output will be # when printing. - - a static const type_p_name_[] string set to something like + - a static const * const type_p_name_ string set to something like "ly:grob?". When provided, an accordingly named function for checking for the given smob type will be available in Scheme. @@ -177,6 +177,7 @@ private: // Most default functions are do-nothings. void init() will // recognize their address when not overriden and will then refrain // altogether from passing the the respective callbacks to GUILE. + SCM mark_smob (void) const; static SCM mark_trampoline (SCM); // Used for calling mark_smob static size_t free_smob (SCM obj); @@ -185,11 +186,10 @@ private: static int print_trampoline (SCM, SCM, scm_print_state *); static void smob_proc_init (scm_t_bits) { }; - // type_p_name_ has to be defined in the Super class, either with a - // static const char [] string or as a null pointer of type const - // char *. We used to provide a default here for convenience, but - // battling the various conflicting C++ standards was too much of a - // hassle. + // Define type_p_name_ in the Super class as a const char * const. + // Without such definition it defaults to 0, producing no predicate. + + static const char * const type_p_name_; // = 0 // LY_DECLARE_SMOB_PROC is used in the Super class definition for // making a smob callable like a function. Its first argument is a