Re: [ROOT] TPaveStats destructor improvements.

From: Damir Buskulic (buskulic@lapp.in2p3.fr)
Date: Wed Sep 04 2002 - 13:45:54 MEST


I've seen this also. In the mean time, as a workaround, since a
pavestats is an object that is attached to a histogram, you can do

>   TCanvas *c = new TCanvas( "c","canvas",500,500);
>   TPaveStats *stats = new TPaveStats(0.1,0.1,0.9,0.9);
>   stats->AddText("STATS");
    h->GetListOfFunctions()->Add(stats); // <----------- add this line
>   stats->Draw();
>   stats->SetBit( kCanDelete );


Where h is a histogram that was generated before.

Cheers

Damir

Tetsuo Arisawa wrote:
>  Hello,
> 
>  I have troubles handling a TCanvas read from a file
> when I use the newest ROOT version, v3.03.
> Segmentation faults occur when I clear or delete the canvas.
> This has not happened in using the older ROOT versions.
> (I do not know how the file is created in detail.)
> 
>  According to a release note, TPaveStats class is updated from v3.03.
> So when I click one of two TPaveStats on the canvas by right mouse
> button
> and choose "Delete", then the segmentation fault shows up.
> 
>  In the source code of v.303, the updated destructor contain a line:
> 
>    if (!fParent->TestBit(kInvalidObject))
> fParent->RecursiveRemove(this);
> 
> that the v.3.02 does not have.
> I think the line should be
> 
>    if ( fParent && !fParent->TestBit(kInvalidObject))
>    fParent->RecursiveRemove(this);
> 
> for stability.  How do  you think?
> 
> You could reproduce the phenomena:
> 
> {
>   gROOT->Reset();
> 
>   TCanvas *c = new TCanvas( "c","canvas",500,500);
>   TPaveStats *stats = new TPaveStats(0.1,0.1,0.9,0.9);
>   stats->AddText("STATS");
>   stats->Draw();
>   stats->SetBit( kCanDelete );
> }
> 
>    Then test one of the following:
>    1. c->Delete(); or delete c;
>    2. c->Clear();
>    3. mouse right click on TPaveStats and choose Delete.
> 
>   If you do the following, segmentation fault disappears.
>   stats->SetParent(c);
> 
> Regards
> Tetsuo Arisawa
>  Waseda Univ. Japan / CDF
> 
> 
> 



-- 
=====================================================================
| Damir Buskulic                  | Universite de Savoie/LAPP       |
|                                 | Chemin de Bellevue, B.P. 110    |
| Tel : +33 (0)450091600          | F-74941 Annecy-le-Vieux Cedex   |
| e-mail: buskulic@lapp.in2p3.fr  | FRANCE                          |
=====================================================================
mailto:buskulic@lapp.in2p3.fr



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET