Package: libsigc++-dev
Version: 1.0.4-9
Severity: important
Tags: patch

Attached a patch to fix class_slot.h.m4 for g++-4.0. The patch is from
ardour.org.
I'll NMU libsigc++ with this patch in a few days since this keeps
ardour from compiling.

        Robert.

-- 
"I love Saturday morning cartoons, what classic humour!  This is what
entertainment is all about ... Idiots, explosives and falling anvils."
                -- Calvin and Hobbes, Bill Watterson
diff -u libsigc++-1.0.4/debian/changelog libsigc++-1.0.4/debian/changelog
--- libsigc++-1.0.4/debian/changelog
+++ libsigc++-1.0.4/debian/changelog
@@ -1,3 +1,11 @@
+libsigc++ (1.0.4-10) unstable; urgency=low
+
+  * debian/60gxx-4.0-fixes.patch (sigc++/macros/class_slot.h.m4, 
+    sigc++/adaptor.cc): g++ 4.0 fixes from ardour.org 
+    (http://ardour.org/cgi-bin/viewcvs.cgi/ardour/libs/sigc++/sigc%2B%2B/)
+
+ -- Robert Jordens <[EMAIL PROTECTED]>  Wed,  3 Aug 2005 15:53:12 +0200
+
 libsigc++ (1.0.4-9) unstable; urgency=low
 
   * Attempt to fix my changelog screwup by pulling -8 from unstable and
only in patch2:
unchanged:
--- libsigc++-1.0.4.orig/debian/60gxx-4.0-fixes.patch
+++ libsigc++-1.0.4/debian/60gxx-4.0-fixes.patch
@@ -0,0 +1,195 @@
+--- libsigc++-1.0.4.orig/sigc++/adaptor.cc
++++ libsigc++-1.0.4/sigc++/adaptor.cc
+@@ -26,7 +26,7 @@
+   {
+    sdata->list_.insert_direct(sdata->list_.begin(),node);
+ 
+-   int i;
++   unsigned int i;
+    char *p1=(char*)&(node->data_),*p2=(char*)&(sdata->data_);
+    for (i=0;i<sizeof(Callback_)/sizeof(char);i++)
+      { *p1=*p2; p1++; p2++; }
+--- libsigc++-1.0.4.orig/sigc++/macros/class_slot.h.m4 2005-08-03 
16:54:01.000000000 +0200
++++ libsigc++-1.0.4/sigc++/macros/class_slot.h.m4      2005-08-03 
16:54:17.000000000 +0200
+@@ -68,15 +68,17 @@ template <LIST(class R,1,ARG_CLASS($1),[
+ struct [ClassSlot]NUM($1)_:public 
[ObjectSlot]NUM($1)_<LIST(R,1,ARG_TYPE($1),[$1],Obj,1)>
+   {
+    typedef [ObjectSlot]NUM($1)_<LIST(R,1,ARG_TYPE($1),[$1],Obj,1)> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      
data.callback=&[ObjectSlot]NUM($1)_<LIST(R,1,ARG_TYPE($1),[$1],Obj,1)>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+--- libsigc++-1.0.4.orig/sigc++/class_slot.h   2005-08-03 16:56:06.000000000 
+0200
++++ libsigc++-1.0.4/sigc++/class_slot.h        2005-08-03 16:56:44.000000000 
+0200
+@@ -45,15 +45,17 @@ template <class R,class Obj>
+ struct ClassSlot0_:public ObjectSlot0_<R,Obj>
+   {
+    typedef ObjectSlot0_<R,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot0_<R,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -79,15 +81,17 @@ template <class R,class P1,class Obj>
+ struct ClassSlot1_:public ObjectSlot1_<R,P1,Obj>
+   {
+    typedef ObjectSlot1_<R,P1,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot1_<R,P1,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -113,15 +117,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot2_:public ObjectSlot2_<R,P1,P2,Obj>
+   {
+    typedef ObjectSlot2_<R,P1,P2,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot2_<R,P1,P2,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -147,15 +153,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot3_:public ObjectSlot3_<R,P1,P2,P3,Obj>
+   {
+    typedef ObjectSlot3_<R,P1,P2,P3,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot3_<R,P1,P2,P3,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -181,15 +189,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot4_:public ObjectSlot4_<R,P1,P2,P3,P4,Obj>
+   {
+    typedef ObjectSlot4_<R,P1,P2,P3,P4,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot4_<R,P1,P2,P3,P4,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -215,15 +225,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot5_:public ObjectSlot5_<R,P1,P2,P3,P4,P5,Obj>
+   {
+    typedef ObjectSlot5_<R,P1,P2,P3,P4,P5,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot5_<R,P1,P2,P3,P4,P5,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -249,15 +261,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot6_:public ObjectSlot6_<R,P1,P2,P3,P4,P5,P6,Obj>
+   {
+    typedef ObjectSlot6_<R,P1,P2,P3,P4,P5,P6,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot6_<R,P1,P2,P3,P4,P5,P6,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }
+@@ -283,15 +297,17 @@ template <class R,class P1,class P2,clas
+ struct ClassSlot7_:public ObjectSlot7_<R,P1,P2,P3,P4,P5,P6,P7,Obj>
+   {
+    typedef ObjectSlot7_<R,P1,P2,P3,P4,P5,P6,P7,Obj> Base;
++   typedef typename Base::Func Func;
+    typedef typename Base::InFunc InFunc;
++   typedef typename Base::CallData CallData;
+ 
+    static SlotData* create(Obj* obj,InFunc func)
+      {
+       if (!obj) return 0;
+       SlotData* tmp=manage(new SlotData());
+       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
+-      data.callback=&callback;
+-      data.obj=obj;
++      data.callback=&ObjectSlot7_<R,P1,P2,P3,P4,P5,P6,P7,Obj>::callback;
++      data.obj=&obj;
+       data.func=(Func)func;
+       return tmp;
+      }

Attachment: signature.asc
Description: Digital signature

Reply via email to