Hi!
I have a Linux RedHat-7.3 box with self-compiled (with gcc-3.2) Xerces-2.1.0 &
Xalan-1.4.
I had a set of classes that were doing XSL transformations for my previous
project, this project was using Xerces-1.7.0 + CVS version of Xalan 1.4 (~ a
month or two before release). And I was using gcc-2.96 from RedHat.
Now I just moved the same classes (custom EntityResolver and ErrorHandler +
class that calls XalanTransformer) to the new project, compiled it with the
new libraries and... I have _complitely_ corrupted results. Just some mess
instead of transformation result :-(
If I'm linking with debug version of Xalan I'm getting the crash:
(gdb) bt
#0 0x42028cc1 in kill () from /lib/i686/libc.so.6
#1 0x4081c07d in raise () from /lib/i686/libpthread.so.0
#2 0x4202a019 in abort () from /lib/i686/libc.so.6
#3 0x42021cd6 in __assert_fail () from /lib/i686/libc.so.6
#4 0x4028d6de in ~XalanReferenceCountedObject (this=0x80d849c) at
PlatformSupport/XalanReferenceCountedObject.cpp:80
#5 0x402e0294 in ~XObject (this=0x80d849c) at XPath/XObject.cpp:102
#6 0x402df898 in ~XNumberBase (this=0x80d849c) at XPath/XNumberBase.cpp:86
#7 0x40324a5a in ~XTokenNumberAdapter (this=0x80d849c) at
XPath/XTokenNumberAdapter.cpp:84
#8 0x40322ffa in
ArenaBlockDestroy<XTokenNumberAdapter>::operator()(XTokenNumberAdapter&)
const (this=0x809525c, [EMAIL PROTECTED])
at PlatformSupport/ArenaBlock.hpp:134
#9 0x403237e2 in
ArenaBlock<XTokenNumberAdapter>::DeleteFunctor::operator()(XTokenNumberAdapter&)
const (this=0x40b1fdb4,
[EMAIL PROTECTED]) at PlatformSupport/ArenaBlock.hpp:412
#10 0x403235ea in ArenaBlock<XTokenNumberAdapter>::DeleteFunctor
std::for_each<XTokenNumberAdapter*,
ArenaBlock<XTokenNumberAdapter>::DeleteFunctor>(XTokenNumberAdapter*,
XTokenNumberAdapter*, ArenaBlock<XTokenNumberAdapter>::DeleteFunctor)
(__first=0x80d849c,
__last=0x80d84b0, __f={m_arenaBlock = @0x8095258, m_destroyFunction =
@0x809525c}) at /usr/include/c++/3.2/bits/stl_algo.h:157
#11 0x4032330a in ArenaBlock<XTokenNumberAdapter>::destroyAll()
(this=0x8095258) at PlatformSupport/ArenaBlock.hpp:340
#12 0x4032417e in ~ReusableArenaBlock (this=0x8095258) at
PlatformSupport/ReusableArenaBlock.hpp:94
#13 0x403234d2 in ArenaDeleteFunctor<ReusableArenaBlock<XTokenNumberAdapter>
>::operator()(ReusableArenaBlock<XTokenNumberAdapter> const*) const
(this=0x40b1fe78, theType=0x8095258) at PlatformSupport/ArenaAllocator.hpp:83
#14 0x40323094 in ArenaDeleteFunctor<ReusableArenaBlock<XTokenNumberAdapter> >
std::for_each<__gnu_cxx::__normal_iterator<ReusableArenaBlock<XTokenNumberAdapter>**,
std::vector<ReusableArenaBlock<XTokenNumberAdapter>*,
std::allocator<ReusableArenaBlock<XTokenNumberAdapter>*> > >,
ArenaDeleteFunctor<ReusableArenaBlock<XTokenNumberAdapter> >
>(__gnu_cxx::__normal_iterator<ReusableArenaBlock<XTokenNumberAdapter>**,
std::vector<ReusableArenaBlock<XTokenNumberAdapter>*,
std::allocator<ReusableArenaBlock<XTokenNumberAdapter>*> > >,
__gnu_cxx::__normal_iterator<ReusableArenaBlock<XTokenNumberAdapter>**,
std::vector<ReusableArenaBlock<XTokenNumberAdapter>*,
std::allocator<ReusableArenaBlock<XTokenNumberAdapter>*> > >,
ArenaDeleteFunctor<ReusableArenaBlock<XTokenNumberAdapter> >) (__first=
{<iterator<std::random_access_iterator_tag,ReusableArenaBlock<XTokenNumberAdapter>*,int,ReusableArenaBlock<XTokenNumberAdapter>**,ReusableArenaBlock<XTokenNumberAdapter>*&>>
= {<No data fields>}, _M_current = 0x813ac28}, __last=
{<iterator<std::random_access_iterator_tag,ReusableArenaBlock<XTokenNumberAdapter>*,int,ReusableArenaBlock<XTokenNumberAdapter>**,ReusableArenaBlock<XTokenNumberAdapter>*&>>
= {<No data fields>}, _M_current = 0x813ac2c}, __f={<No data fields>})
at /usr/include/c++/3.2/bits/stl_algo.h:157
#15 0x40322954 in ArenaAllocator<XTokenNumberAdapter,
ReusableArenaBlock<XTokenNumberAdapter> >::reset() (this=0x40b20220)
at PlatformSupport/ArenaAllocator.hpp:227
#16 0x40322520 in ~ArenaAllocator (this=0x40b20220) at
PlatformSupport/ArenaAllocator.hpp:116
#17 0x40321fec in ~ReusableArenaAllocator (this=0x40b20220) at
PlatformSupport/ReusableArenaAllocator.hpp:106
#18 0x40321da4 in ~XTokenNumberAdapterAllocator (this=0x40b20220) at
XPath/XTokenNumberAdapterAllocator.cpp:72
#19 0x402e5c3c in ~XObjectFactoryDefault (this=0x40b2018c) at
XPath/XObjectFactoryDefault.cpp:107
#20 0x40410b1a in XalanTransformer::doTransform(XalanParsedSource const&,
XalanCompiledStylesheet const*, XSLTInputSource const*, XSLTResultTarget
const&) (this=0x40b20930, [EMAIL PROTECTED],
theCompiledStylesheet=0x80933e0, theStylesheetSource=0x0,
[EMAIL PROTECTED]) at XalanTransformer/XalanTransformer.cpp:1181
#21 0x0804fde1 in XalanTransformer::transform(XalanParsedSource const&,
XalanCompiledStylesheet const*, XSLTResultTarget const&) (
this=0x40b20930, [EMAIL PROTECTED], theCompiledStylesheet=0x80933e0,
[EMAIL PROTECTED])
at
../ThirdParty/Linux/xalan/include/XalanTransformer/XalanTransformer.hpp:196
#22 0x0804f58a in TXMLProcessor::process(TXMLDocument&) (this=0x40b2091c,
[EMAIL PROTECTED]) at txmlprocessor.cpp:111
#23 0x0805188a in receiverThread(void*) (dataSource=0x805c5f0) at main.cpp:197
#24 0x40819941 in pthread_start_thread () from /lib/i686/libpthread.so.0
Can anybody give me some idea? :-( It was a working code :-(
Alexei