summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cxa_demangle.cpp4
-rw-r--r--test/test_demangle.cpp2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/cxa_demangle.cpp b/src/cxa_demangle.cpp
index 22adf13..0394485 100644
--- a/src/cxa_demangle.cpp
+++ b/src/cxa_demangle.cpp
@@ -10019,7 +10019,9 @@ public:
virtual size_t first_size() const
{
if (__cached_size_ == -1)
- const_cast<long&>(__cached_size_) = __left_->size() + 3 + __right_->size();
+ const_cast<long&>(__cached_size_) = __left_->size() + 3
+ + __right_->first_size()
+ + __right_->second_size();
return __cached_size_;
}
virtual char* first_demangled_name(char* buf) const
diff --git a/test/test_demangle.cpp b/test/test_demangle.cpp
index fcbf10f..69fdc13 100644
--- a/test/test_demangle.cpp
+++ b/test/test_demangle.cpp
@@ -29559,6 +29559,8 @@ const char* cases[][2] =
{"_ZSt13copy_backwardIN9__gnu_cxx17__normal_iteratorIPNS0_19_Hashtable_iteratorISt4pairIK16CSCppSymbolOwnerP20CSCppSymbolOwnerDataES4_27CSCppSymbolOwnerHashFunctorSt10_Select1stIS8_E29CSCppSymbolOwnerEqualsFunctorSaIS7_EEESt6vectorISE_SaISE_EEEESJ_ET0_T_SL_SK_", "__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > > std::copy_backward<__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > > >(__gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > >, __gnu_cxx::__normal_iterator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >*, std::vector<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> >, std::allocator<__gnu_cxx::_Hashtable_iterator<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*>, CSCppSymbolOwner, CSCppSymbolOwnerHashFunctor, std::_Select1st<std::pair<CSCppSymbolOwner const, CSCppSymbolOwnerData*> >, CSCppSymbolOwnerEqualsFunctor, std::allocator<CSCppSymbolOwnerData*> > > > >)"},
{"_ZTC14SSDatabaseImpl0_N8Security10CssmClient6DbImplE", "construction vtable for Security::CssmClient::DbImpl-in-SSDatabaseImpl"},
{"_ZGRZN1N1gEvE1a", "reference temporary for N::g()::a"},
+ {"_ZN5boost4bindIvN10libtorrent15peer_connectionEiRKNS1_11disk_io_jobENS1_12peer_requestENS_10shared_ptrINS1_7torrentEEENS_13intrusive_ptrIS2_EENS_3argILi1EEENSC_ILi2EEES6_S9_EENS_3_bi6bind_tIT_NS_4_mfi3mf4ISH_T0_T1_T2_T3_T4_EENSF_9list_av_5IT5_T6_T7_T8_T9_E4typeEEEMSK_FSH_SL_SM_SN_SO_ESR_SS_ST_SU_SV_", "boost::_bi::bind_t<void, boost::_mfi::mf4<void, libtorrent::peer_connection, int, libtorrent::disk_io_job const&, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent> >, boost::_bi::list_av_5<boost::intrusive_ptr<libtorrent::peer_connection>, boost::arg<1>, boost::arg<2>, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent> >::type> boost::bind<void, libtorrent::peer_connection, int, libtorrent::disk_io_job const&, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent>, boost::intrusive_ptr<libtorrent::peer_connection>, boost::arg<1>, boost::arg<2>, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent> >(void (libtorrent::peer_connection::*)(int, libtorrent::disk_io_job const&, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent>), boost::intrusive_ptr<libtorrent::peer_connection>, boost::arg<1>, boost::arg<2>, libtorrent::peer_request, boost::shared_ptr<libtorrent::torrent>)"},
+ {"_ZN7WebCore20createFileThreadTaskINS_15FileStreamProxyEN3WTF6StringERKS3_ddEENS2_10PassOwnPtrINS_10FileThread4TaskEEEPT_MSA_FvT1_T3_ERKT0_RKT2_", "WTF::PassOwnPtr<WebCore::FileThread::Task> WebCore::createFileThreadTask<WebCore::FileStreamProxy, WTF::String, WTF::String const&, double, double>(WebCore::FileStreamProxy*, void (WebCore::FileStreamProxy::*)(WTF::String const&, double), WTF::String const&, double const&)"},
};
const unsigned N = sizeof(cases) / sizeof(cases[0]);