RE: [ROOT] TArrayI::Reset() implementation change

From: Philippe Canal (pcanal@fnal.gov)
Date: Mon Apr 05 2004 - 16:41:05 MEST


Hi Pete, Gero,

A release of 3.10/02 patched would have to wait until at least next week (when
Rene returns).  In the meantime, is it feasible for your to just patch your own
releases?  At the very least I will make sure we get a tagged version of CVS
corresponding to a patched version of ROOT 3.10/02 sometimes this week (whenever
I can get a hold of Fons).

Cheers,
Philippe.

-----Original Message-----
From: Peter Elmer [mailto:Peter.Elmer@cern.ch]
Sent: Monday, April 05, 2004 4:18 AM
To: Gero Flucke
Cc: Philippe Canal; roottalk@pcroot.cern.ch
Subject: Re: [ROOT] TArrayI::Reset() implementation change


  Hi,

  For the record, we (BaBar) are in the same situation: I'd hoped to move
us ahead to 3.10-02 since in particular it eliminates many of the valgrind
warnings, but we aren't ready to go to ROOT4 quite yet.

                                   Pete

On Mon, Apr 05, 2004 at 11:02:42AM +0200, Gero Flucke wrote:
> On Fri, 2 Apr 2004, Philippe Canal wrote:
> 
> > Hi Peter,
> >
> > The problem will be correct in the CVS repository as soon as Fons
> > comes back (next week).
> >
> 
> Hi ROOT team,
> will there be a fixed 3.10_03 then? I (and probably many others) would
> not like to change to the development releases 4.00_XX yet.
> 
> Cheers
> 
> 	Gero
> 
> > >   Hi Rene,
> > >
> > >   I see that between ROOT 3.10-01 and 3.10-02, the following change was
> > made
> > > to TArrayI::Reset(...):
> > >
> > > < // @(#)root/cont:$Name:  $:$Id: TArrayI.h,v 1.14 2002/10/30 20:39:50
> > brun
> > > Exp $
> > > ---
> > > > // @(#)root/cont:$Name:  $:$Id: TArrayI.h,v 1.16 2003/11/14 11:17:13
> > brun
> > > Exp $
> > > 44c44
> > > <    void         Copy(TArrayI &array) const {array.Set(fN); for (Int_t
> > > i=0;i<fN;i++) array.fArray[i] = fArray[i];}
> > > ---
> > > >    void         Copy(TArrayI &array) const {array.Set(fN,fArray);}
> > > 48,49c48
> > > <    void         Reset()           {memset(fArray, 0, fN*sizeof(Int_t));}
> > > <    void         Reset(Int_t val)  {for (Int_t i=0;i<fN;i++) fArray[i] =
> > > val;}
> > > ---
> > > >    void         Reset(Int_t val=0)  {memset(fArray,val,
> > > fN*sizeof(Int_t));}
> > >
> > >   For values of val other than 0, I think this actually changes the
> > > implementation since memset (IIRC) fills the array >byte-by-byte< with
> > > the value "val" (and not array-index by array-index). Was that change
> > > intentional? (We were relying on the original implementation in some of
> > our
> > > code.)
> > >
> > >                                  thanks,
> > >                                    Pete
> > >
> >



-------------------------------------------------------------------------
Peter Elmer     E-mail: Peter.Elmer@cern.ch      Phone: +41 (22) 767-4644
Address: CERN Division PPE, Bat. 32 2C-14, CH-1211 Geneva 23, Switzerland
-------------------------------------------------------------------------



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET