Hi Miha,
You are doing an illegal operation in fParNames.AddLast((TObject*)pnm);
You should not add to a TObjArray something that is not a TObject*.
This will give problems later when Cloning.
Why don't you use simply a array of TString (eg see TFormula).
Rene Brun
On Fri, 13 Apr 2001 miha.puc@marvin.fmf.uni-lj.si wrote:
> Hi ROOTers!
>
> I want to Clone() my class TFoonction and get a Segmentation fault.
>
> >From debugger I got
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x400d39a5 in TBuffer::WriteObject () from /usr/share/root/lib/libCore.so
> Current language: auto; currently c
> (gdb) bt
> #0 0x400d39a5 in TBuffer::WriteObject () from
> /usr/share/root/lib/libCore.so
> #1 0x4012320f in TObjArray::Streamer () from
> /usr/share/root/lib/libCore.so
> #2 0x4014686d in TStreamerInfo::WriteBuffer ()
> from /usr/share/root/lib/libCore.so
> #3 0x4012d66f in TClass::WriteBuffer () from
> /usr/share/root/lib/libCore.so
> #4 0x40b5a624 in TFoonction::Streamer (this=0x86bbb28,
> R(bool)=@0x86c5b30)
> at TFoonction_Dict.cc:110
> #5 0x400ed404 in TObject::Clone () from /usr/share/root/lib/libCore.so
> #6 0x400ebe75 in TNamed::Clone () from /usr/share/root/lib/libCore.so
> #7 0x40b59c3c in TFoonction::Add (this=0x86bbfb8, Fnc=0x86bbb28,
> Fname=0x804a5dc "Sline1") at TFoonction.cxx:121
> #8 0x8049278 in SetFoonc () at SetFoonc.cxx:29
> #9 0x8048f97 in main (argc=2, argv=0xbffffc54) at testFoo.C:24
>
>
> It seems that TObjArray fParNames is the problem.
> I fill it with the loop below and it works OK otherwise.
>
> for (Int_t ij=0; ij<fNprs; ij++) {
> TString *pnm = new TString(name);
> *pnm += "_p";
> *pnm += ij;
> fParNames.AddLast((TObject*)pnm);
> }
>
>
> Does anyone know where the problem is?
> I use ROOT v3.01/00 on RH 6.2.
>
> Thank you,
> Miha
>
> --
>
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:41 MET