Hi Philippe, Talk:
The last suggestion worked... the assertion failure goes away if you
don't generate the dictionary (of course... the assertion was in the
dictionary). Now something else has come up:
Fatal: fValueClass violated at line 131 of `cont/src/TEmulatedVectorProxy.cxx'
I'm attempting to Branch a class which contains a class that inherits
from TObject and vector<>. I am using root from CVS. Any thoughts?
Thanks,
Troy Straszheim
Philippe Canal <pcanal@fnal.gov> writes:
> Hi Troy,
>
> No knowing which version of ROOT you are using, I am not sure whether
> this is fixed yet or not.
>
> Anyway the work-around most likely to work (beside upgrading to the
> latest version :) ) is to add to your linkdef file:
>
> #pragma link off class vector<I3OMGeo*,allocator<I3OMGeo*> >::iterator;
> or
> #pragma link C++ class vector<I3OMGeo*,allocator<I3OMGeo*> >::iterator-;
>
> (One of two ought to work).
>
> Cheers,
> Philippe.
>
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Troy D. Straszheim
> Sent: Tuesday, June 29, 2004 3:30 PM
> To: roottalk@pcroot.cern.ch
> Subject: [ROOT] Strange assertion failure
>
>
>
> Hi roottalk:
>i
> I have a strange assertion failure that I am not able to reproduce in
> a small example and therefore have to ask if anything looks familiar
> (for pointers on how to create a small example or find a workaround).
>
> This occurs when I build a dictionary using the -p flag to rootcint
> (which is necessary to get the boost libraries to compile. However in
> this case I am not using the boost libraries). I get the assertion
> failure (below) at runtime. Without the -p flag, I do not get this
> assertion failure. Is this perhaps a symption of (fingers crossed)
> some known bug?
>
> This vector<I3OMGeo*, allocator<I3OMGeo*> >::iterator is a
> typedef, from a template class:
>
> template <class ElementType>
> class STLVectorStoragePolicy {
>
> public:
>
> typedef vector<ElementType> vector_type;
> typedef typename vector_type::iterator iterator;
> typedef typename vector_type::const_iterator const_iterator;
> typedef typename vector_type::reverse_iterator reverse_iterator;
> typedef ElementType& reference;
> typedef const ElementType& const_reference;
>
> private:
>
> vector_type thevector;
>
> // etc
> }
>
> So somewhere in the code is:
>
> STLVectorStoragePolicy<I3OMGeo*> some_instance;
>
> And the error comes up. Any ideas?
>
> Thanks,
>
> Troy Straszheim
>
>
>
> Fatal: sizeof(::vector<I3OMGeo*,allocator<I3OMGeo*> >::iterator) == sizeof(ROOT::Shadow::vectorlEI3OMGeomUcOallocatorlEI3OMGeomUgRsPgR__iterator) violated at line 670 of `../Linux-i386/build/dataclasses/public/dataclasses/dataclassesDict.cxx'
> aborting
> Generating stack trace...
> 0x41cafc54 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
> 0x41cb2c54 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
> 0x41cf5ef5 in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
> 0x41b5646d in <unknown> from /home/troy/icetray/work/Linux-i386/lib/libdataclasses.so
> 0x4000aefe in <unknown> from /lib/ld-linux.so.2
> 0x4000afea in _dl_init + 0xaa from /lib/ld-linux.so.2
> 0x4137fd9e in <unknown> from /lib/libc.so.6
> 0x4000ad46 in _dl_catch_error + 0x76 from /lib/ld-linux.so.2
> 0x413801ef in _dl_open + 0x5f from /lib/libc.so.6
> 0x411459ab in <unknown> from /lib/libdl.so.2
> 0x4000ad46 in _dl_catch_error + 0x76 from /lib/ld-linux.so.2
> 0x41145286 in <unknown> from /lib/libdl.so.2
> 0x41145a02 in dlopen + 0x42 from /lib/libdl.so.2
> 0x4074ce8f in G__dlopen + 0x2c from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x4074d839 in G__shl_load + 0x7f from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x4070a02d in G__loadfile + 0x1453 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x40186b0b in TCint::Load(char const*, bool) + 0x5b from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x40153623 in TSystem::Load(char const*, char const*, bool) + 0x27d from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x401f9db1 in TUnixSystem::Load(char const*, char const*, bool) + 0x35 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x4030e325 in <unknown> from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x4070f990 in G__call_cppfunc + 0x2bd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406fd95e in G__interpret_func + 0x754 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406d781c in G__getfunction + 0x164d from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x40777e8b in G__getstructmem + 0xa06 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x40770464 in G__getvariable + 0x5cd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406ce182 in G__getitem + 0x710 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406cc93e in G__getexpr + 0x9733 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x4072882b in G__exec_function + 0x1f2 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x4072fc42 in G__exec_statement + 0x24fd from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406b23eb in G__exec_tempfile_core + 0x33e from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x406b268e in G__exec_tempfile + 0x31 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x407386f1 in G__process_cmd + 0x4acf from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCint.so
> 0x40186c82 in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) + 0xb4 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x40186dc3 in TCint::ProcessLineSynch(char const*, TInterpreter::EErrorCode*) + 0x4f from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x400f41ce in TApplication::ProcessFile(char const*, int*) + 0x930 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x400f3816 in TApplication::ProcessLine(char const*, bool, int*) + 0x54a from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libCore.so
> 0x41110a20 in TRint::Run(bool) + 0x1e2 from /home/troy/icetray/work/tools/Linux-i386/lib/root/lib/libRint.so
> 0x08048e34 in main + 0x90 from /home/troy/icetray/work/tools/Linux-i386/lib/root/bin/root.exe
> 0x4128e90c in __libc_start_main + 0xcc from /lib/libc.so.6
> 0x08048d01 in TApplicationImp::ShowMembers(TMemberInspector&, char*) + 0x39 from /home/troy/icetray/work/tools/Linux-i386/lib/root/bin/root.exe
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET