Dear Stefano, Thank you for reporting this problem. This is a cint bug. I'll fix this in cint5.14.38. Meanwhile, you can patch this problem by modifying src/ifunc.c or src/CINT_ifunc.c line 4070. if(-1 != (baseoffset=G__ispublicbase(formal_tagnum,param_tagnum ,param->obj.i))) { param->tagnum = formal_tagnum; param->obj.i += baseoffset; param->ref += baseoffset; /*<<< line 4070 */ /* param->ref = 0; */ Masaharu Goto > >Dear Rooters, > I recently upgraded from Root 2.23.12 to 2.24.04, > and a macro of mines worked no more. It seems that > CINT doesn't handle pointers passed by reference > any more: > > void foo(TPad *&a_pad) { a_pad = new TPad(...); } > > when foo() is called, a_pad in not NULL inside the > function, but the pointer passed as argument to foo() > is not changed in the main. Passing a double pointer > works though: > > void foo(TPad **pad_pt) { TPad *&a_pad = *pad_pt; a_pad = new TPad(...); } > > any comment? > >---------------------------------------------------------- >E-Mail: Stefano Bettelli <bettelli@tn.infn.it> >WWW : http://meitner.tn.infn.it/~bettelli >Tel : +39-0347-1663760
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET