[ROOT] CustomReAlloc2

From: Axel Naumann (axel@fnal.gov)
Date: Thu May 24 2001 - 21:10:27 MEST


Hi,

reading a TTree with the Win debug version of Root I get the following
error:

---
<CustomReAlloc2>: passed oldsize 64, should be 589833
Fatal in <CustomReAlloc2>: unreasonable size (589833)
aborting
Warning in <TWinNTSystem::StackTrace>: this method must be overridden!
---

The call stack is as follows:

---
[...]
Fatal(const char * 0x00ba3168, const char * 0x00ba31c8) line 186 + 22 bytes
CustomReAlloc2(void * 0x016b2c00, unsigned int 1024, unsigned int 64) line
369 + 37 bytes
TStorage::ReAlloc(void * 0x016b2c00, unsigned int 1024, unsigned int 64)
line 182 + 18 bytes
TObjArray::Expand(int 256) line 287 + 29 bytes
TObjArray::Streamer(TBuffer & {...}) line 307
TBranch::Streamer(TBuffer & {...}) line 1044
TBuffer::ReadObject(const TClass * 0x0161a1f0) line 1321
LIBCORE! operator>>(class TBuffer &,class TObject * &) + 17 bytes
TObjArray::Streamer(TBuffer & {...}) line 310 + 13 bytes
TTree::Streamer(TBuffer & {...}) line 2769
TKey::ReadObj() line 474
[...]
---

It fails trying to stream the 16th of 256 objects (an TObjArray) within the
fourth of 16 branches.

Could the problem be caused by some incompatibility between the debug
version of "::new" and the debug version of ReAlloc? MSVC tells me

---
HEAP[ntpl2classDbg.exe]: Heap block at 01129E70 modified at 0112C458 past
requested size of 25e0
---

Cheers, Axel.



This archive was generated by hypermail 2b29 : Fri Jun 08 2001 - 11:51:25 MEST