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