]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/small-smobs.hh
Merge remote branch 'origin/master' into release/unstable
[lilypond.git] / lily / include / small-smobs.hh
index a752662c1e534da09c82336d8be22b7bd71f4e69..41171b4881a5945de45f7e7a7c6e3820e12281ef 100644 (file)
 template <class Super>
 class Smob1 : public Smob_base<Super>
 {
-  Smob1 () { } // private constructor: objects don't exist, only
-               // "pointers" to them
+  Smob1 (); // Do not define!  Not constructible!
+  Smob1 (const Smob1 &); // Do not define!  Not copyable!
 public:
   SCM self_scm () const { return SCM_PACK (this); }
   SCM & scm1 () const { return *SCM_SMOB_OBJECT_LOC (self_scm ()); }
   static SCM make_smob (SCM arg1 = SCM_UNDEFINED) {
     SCM_RETURN_NEWSMOB (Smob_base<Super>::smob_tag (), SCM_UNPACK (arg1));
   }
-  static const int free_smob = 0;
   SCM mark_smob () { return scm1 (); };
   static Super *unchecked_unsmob (SCM s) {
     return reinterpret_cast<Super *> (SCM_UNPACK (s));
@@ -42,8 +41,8 @@ public:
 template <class Super>
 class Smob2 : public Smob_base<Super>
 {
-  Smob2 () { } // private constructor: objects don't exist, only
-               // "pointers" to them
+  Smob2 (); // Do not define!  Not constructible!
+  Smob2 (const Smob2 &); // Do not define!  Not copyable!
 public:
   SCM self_scm () const { return SCM_PACK (this); }
   SCM & scm1 () const { return *SCM_SMOB_OBJECT_LOC (self_scm ()); }
@@ -53,7 +52,6 @@ public:
                          SCM_UNPACK (arg1),
                          SCM_UNPACK (arg2));
   }
-  static const int free_smob = 0;
   SCM mark_smob ()
   {
     scm_gc_mark (scm2 ());
@@ -67,8 +65,8 @@ public:
 template <class Super>
 class Smob3 : public Smob_base<Super>
 {
-  Smob3 () { } // private constructor: objects don't exist, only
-               // "pointers" to them
+  Smob3 (); // Do not define!  Not constructible!
+  Smob3 (const Smob3 &); // Do not define!  Not copyable!
 public:
   SCM self_scm () const { return SCM_PACK (this); }
   SCM & scm1 () const { return *SCM_SMOB_OBJECT_LOC (self_scm ()); }
@@ -82,8 +80,7 @@ public:
                          SCM_UNPACK (arg2),
                          SCM_UNPACK (arg3));
   }
-  static const int free_smob = 0;
-  static SCM mark_smob (SCM s)
+  SCM mark_smob ()
   {
     scm_gc_mark (scm3 ());
     scm_gc_mark (scm2 ());