[ROOT] deletion of a TProfile object crashes in Win2k.

From: Ed Oltman (eoltman@imago.com)
Date: Tue Jul 08 2003 - 21:43:09 MEST


Hello,

I have a dll built with win32 root version 3.05/5 that opens and processes
several root file in sequence.  The root file contains an object containing
a TProfile
member:

 TProfile *fVoltProf;

This object is read from an input  with objects (costumized)  Streamer():

	R__b >> fVoltProfile; if (fVoltProfile)
fVoltProfile->SetDirectory(0)

When the second file is opened, this object's dtor is called.  The following
line causes a crash (access violation) when the member's 
fFunction->Delete() is called  in TH1::~TH1():

  delete fVoltProfile;

fVoltProfile->fFunctions has two items: The first is a TF1 object that is
deleted
just fine.  The second is a TPaveStats and thats what causes the crash.  The
stack is shown starting from when my TProfile is deleted...


00ff035b()
TList::Remove(TObject * 0x024755c8) line 551 + 16 bytes
TCollection::RecursiveRemove(TObject * 0x024755c8) line 283 + 18 bytes
TPaveStats::~TPaveStats() line 88
LIBGRAF! TPaveStats::`vector deleting destructor'(unsigned int) + 84 bytes
TCollection::GarbageCollect(TObject * 0x024755c8) line 415 + 31 bytes
TList::Delete(const char * 0x00ba4f3c) line 386 + 14 bytes 
TH1::~TH1() line 472 
TH1D::~TH1D() line 6068 + 50 bytes
TProfile::~TProfile() line 78 + 29 bytes
LIBHIST! TProfile::`vector deleting destructor'(unsigned int) + 84 bytes
CVoltage::~CVoltage() line 40 + 45 bytes <-- This is where delete
fVoltProfile occurs

Note 0: I am running on Win2k

Note 1: this crash only occurs when I run my dll in the debugger.  The crash
only occurs
when I debug the DLL from visual v++6.  If I simply run the debug version,
it does not
crash.

Note 2:  I build the root libraries using cygwin+make+visual c++ 6 so that I
don't rely
on the .net libraries.  I used the sources from root_v3.05.05.source.tar.gz
on root
website.

Any help on this problem would be greatly appreciated - thank you..

Ed Oltman





This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET