Re: Change in Reflex dictionaries and vector<>'s from v5.18.00 to v5.22.00a

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Fri, 24 Apr 2009 09:13:27 +0200


Hi Brett,

this has nothing to do with ROOT or Reflex. But GCCXML changed the way it instantiates templates because GCC's parser changed, and 5.18 was commonly used with the old GCCXML (0.7) while 5.22 is commonly used with the new one (0.9). Your workaround is the only one I am aware of. Other changes are in the area of automatic, compiler-provided default constructor, destructor, and op=, which are now part of GCCXML's output.

Either way none of this should not lead to a SegV, so it's maybe ROOT or your code that is missing a protection. Can you give me a bit more details where it crashes so we can get that fixed?

Cheers, Axel.

Brett Viren wrote on 04/23/2009 05:16 PM:
> Hello,
>
> In going from 5.18 and 5.22 I found that reading in our data files
> (TFiles with one or more TTrees) led to SegV.
>
> I was able to fix it by explicitly adding entries like
>
> <class name="std::vector&gt;Type&lt;"/>
>
> to Reflex's XML section files. This change apparently only applies to
> containers-of-objects. Missing definitions for containers-of-pointers
> would always trigger a SegV. Maybe we were just lucky before?
>
> In any case, explicitly adding the "<class>" tag is easy enough to do so
> maybe there is no need to try to regain the old behavior. I just
> mention it in case anyone is in the same situation.
>
> Regards,
> -Brett.
>
>
Received on Fri Apr 24 2009 - 09:09:32 CEST

This archive was generated by hypermail 2.2.0 : Fri Apr 24 2009 - 23:50:01 CEST