Hi,
I'm using Xerces 2.1 and Xalan1.4 now.My program always hit the assertion in ~XalanReferenceCountedObject() on Linux, The reference count is 1 not 0. However the code works fine on Windows NT/Solaris/AIX.
 
Does anybody met this or have any ideas about it? Is this a bug that fixed in the latest version? The call stack is:
 
#0  0x0000002a9637d2c5 in raise () from /lib64/tls/libc.so.6
#1  0x0000002a9637ea33 in abort () from /lib64/tls/libc.so.6
#2  0x0000002a96376c89 in __assert_fail () from /lib64/tls/libc.so.6
#3  0x0000002a9cd7ac93 in ~XalanReferenceCountedObject (this=0x25bc080) at PlatformSupport/XalanReferenceCountedObject.cpp:80
#4  0x0000002a9cdc7897 in ~XObject (this=0x25bc080) at XPath/XObject.cpp:102
#5  0x0000002a9cdc3479 in ~XNodeSetBase (this=0x25bc080) at XPath/XNodeSetBase.cpp:106
#6  0x0000002a9cdc3bd0 in ~XNodeSet (this=0x25bc080) at XPath/XNodeSet.cpp:101
#7  0x0000002a9cdc1b81 in ArenaBlockDestroy<XNodeSet>::operator()(XNodeSet&) const (this=0x2476e58, [EMAIL PROTECTED]) at ArenaBlock.hpp:134
#8  0x0000002a9cdc226d in ArenaBlock<XNodeSet>::DeleteFunctor::operator()(XNodeSet&) const (this=0x49ffda10, [EMAIL PROTECTED]) at ArenaBlock.hpp:412
#9  0x0000002a9cdc20a9 in ArenaBlock<XNodeSet>::DeleteFunctor std::for_each<XNodeSet*, ArenaBlock<XNodeSet>::DeleteFunctor>(XNodeSet*, XNodeSet*, ArenaBlock<XNodeSet>::DeleteFunctor) (__first=0x25bc080, __last=0x25bc3c0, __f={m_arenaBlock = @0x2476e50, m_destroyFunction = @0x2476e58}) at stl_algo.h:157
#10 0x0000002a9cdc1df9 in ArenaBlock<XNodeSet>::destroyAll() (this=0x2476e50) at ArenaBlock.hpp:340
#11 0x0000002a9cdc2ad1 in ~ReusableArenaBlock (this=0x2476e50) at ReusableArenaBlock.hpp:94
#12 0x0000002a9cdc1f81 in ArenaDeleteFunctor<ReusableArenaBlock<XNodeSet> >::operator()(ReusableArenaBlock<XNodeSet> const*) const (this=0x49ffdae0, theType=0x2476e50) at ArenaAllocator.hpp:83
#13 0x0000002a9cdc1bf8 in ArenaDeleteFunctor<ReusableArenaBlock<XNodeSet> > std::for_each<__gnu_cxx::__normal_iterator<ReusableArenaBlock<XNodeSet>**, std::vector<ReusableArenaBlock<XNodeSet>*, std::allocator<ReusableArenaBlock<XNodeSet>*> > >, ArenaDeleteFunctor<ReusableArenaBlock<XNodeSet> > >(__gnu_cxx::__normal_iterator<ReusableArenaBlock<XNodeSet>**, std::vector<ReusableArenaBlock<XNodeSet>*, std::allocator<ReusableArenaBlock<XNodeSet>*> > >, __gnu_cxx::__normal_iterator<ReusableArenaBlock<XNodeSet>**, std::vector<ReusableArenaBlock<XNodeSet>*, std::allocator<ReusableArenaBlock<XNodeSet>*> > >, ArenaDeleteFunctor<ReusableArenaBlock<XNodeSet> >) (__first={<iterator<std::random_access_iterator_tag,ReusableArenaBlock<XNodeSet>*,long int,ReusableArenaBlock<XNodeSet>**,ReusableArenaBlock<XNodeSet>*&>> = {<No data fields>}, _M_current = 0x2aa6a43cb0}, __last={<iterator<std::random_access_iterator_tag,ReusableArenaBlock<XNodeSet>*,long int,ReusableArenaBlock<XNodeSet>**,ReusableArenaBlock<XNodeSet>*&>> = {<No data fields>}, _M_current = 0x2aa6a43d10}, __f={<No data fields>}) at stl_algo.h:157
#14 0x0000002a9cdc1559 in ArenaAllocator<XNodeSet, ReusableArenaBlock<XNodeSet> >::reset() (this=0x49ffe188) at ArenaAllocator.hpp:227
#15 0x0000002a9cdc112f in ReusableArenaAllocator<XNodeSet>::reset() (this=0x49ffe188) at ReusableArenaAllocator.hpp:230
#16 0x0000002a9cdc0cd5 in XNodeSetAllocator::reset() (this=0x49ffe188) at XPath/XNodeSetAllocator.cpp:118
#17 0x0000002a9cdcd9b4 in XObjectFactoryDefault::reset() (this=0x49ffe090) at XPath/XObjectFactoryDefault.cpp:508
#18 0x0000002a9cea8070 in XSLTEngineImpl::reset() (this=0x49ffddb0) at XSLT/XSLTEngineImpl.cpp:230
#19 0x0000002a9ce75615 in StylesheetExecutionContextDefault::reset() (this=0x204c820) at XSLT/StylesheetExecutionContextDefault.cpp:1649
#20 0x0000002a9cedfc42 in ~EnsureReset (this=0x49ffdda0) at XalanTransformer/XalanTransformer.cpp:1031
#21 0x0000002a9cee03f1 in XalanTransformer::doTransform(XalanParsedSource const&, XalanCompiledStylesheet const*, XSLTInputSource const*, XSLTResultTarget const&) (this=0x49ffe5a0, [EMAIL PROTECTED], theCompiledStylesheet=0x235b610, theStylesheetSource=0x0, [EMAIL PROTECTED]) at XalanTransformer/XalanTransformer.cpp:1181
#22 0x0000002a9cedb4a5 in XalanTransformer::transform(XalanParsedSource const&, XalanCompiledStylesheet const*, XSLTResultTarget const&) (this=0x49ffe5a0, [EMAIL PROTECTED], theCompiledStylesheet=0x235b610, [EMAIL PROTECTED]) at XalanTransformer.hpp:196
#23 0x0000002a9cede1a9 in XalanTransformer::transform(XalanParsedSource const&, XalanCompiledStylesheet const*, void*, unsigned long (*)(char const*, unsigned long, void*), void (*)(void*)) (this=0x49ffe5a0, [EMAIL PROTECTED], theCompiledStylesheet=0x235b610, theOutputHandle=0x49ffe570, theOutputHandler=0x2a9b73104e <writeCallback>, theFlushHandler=0x2a9b731076 <flushCallback>) at XalanTransformer/XalanTransformer.cpp:402
Thanks a lot for your help.
 
Kevin

Reply via email to