Hi, We are seeing a memory leak in old code which used to work. The leak goes away when I add "//->" as in Event.h. The ROOT documentation, and the Event.h example, suggests that "//->" should now be used to flag the declarations of pointers-to-TClonesArrays which the user guarantees to be valid pointers to static objects. This is to prevent the automatic streamer from creating a new TClonesArray when each new event is read. The user manual and roottalk item 2004 says that "//->" is only needed when the user has turned on automatic streamers with a "+" affixed to the end of the pragma statement of the LinkDef.h file. But we are finding that we need the "//->" for TClonesArrays declared in classes without "+". Even classes with manual streamers ("-" instead of "+") need "//->" to prevent multiple instantiations. So my question is whether it is normal to be getting automatic streamer behavior without the "+". An auxiliary question is whether "+" will someday become the default so that users do not need to put it on the pragma line. Perhaps we are seeing such default behavior already. I am using the ROOT CVS head release on RedHat Linux 6.2 with egcs.1.1.2. Thanks. George
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:50 MET