[ROOT] TArrayI::Reset() implementation change

From: Peter Elmer (Peter.Elmer@cern.ch)
Date: Fri Apr 02 2004 - 14:07:26 MEST


  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