Hi Rene,
I have some more information on my problem.
As I explained, I put a gObjectTable->Print() inside the loop in which the
operator ``new'' is called:
>-------------------------------------------------<
> for (h=0; h<fNFrag; h++)
> {
> cout<<"h = "<<h<<endl;
> fTCDrawer = new (Drawer[h]) TC_Drawer();
> printf("Pointer Drawer = %x\n", Drawer[h]);
> printf("Pointer fTCDrawer = %x\n", fTCDrawer);
> fTCDrawer = (TC_Drawer*)Drawer[h];
> printf("Pointer fTCDrawer = %x\n", fTCDrawer);
> Fill_Drawer (Fragment[h], fTCDrawer);
> if (h == 5) gObjectTable->Print();
> }
> >--------------------------------------------------<
The news is that I check more accurately the root answer.
If the program works correctly I can one TC_Drawer istance,
but I gain the following error messages
Error in <TObjectTable::UpdateInstCount>: oops 0x088681e8
Error in <TObjectTable::UpdateInstCount>: oops 0x08868be8
Error in <TObjectTable::UpdateInstCount>: oops 0x0886a6d0
Error in <TObjectTable::UpdateInstCount>: oops 0x0886c510
Error in <TObjectTable::UpdateInstCount>: oops 0x0886e1f8
These are exactly exadecimal value of pointers printed in loop.
And they are five, as more as the missing istances.
If the program crashes the error messages are six, as expected after the
previous behaviour:
Error in <TObjectTable::UpdateInstCount>: oops 0x0887ff48
Error in <TObjectTable::UpdateInstCount>: oops 0x0886bbe0
Error in <TObjectTable::UpdateInstCount>: oops 0x0886b028
Error in <TObjectTable::UpdateInstCount>: oops 0x08875f80
Error in <TObjectTable::UpdateInstCount>: oops 0x08867e58
Error in <TObjectTable::UpdateInstCount>: oops 0x08869818
Something is going bad with memory, but what?
What's more, in the first case TTree seems to be correctly build up and
filled. But now it's better if I try to check it.
Cheers,
Paolo Adragna
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET