asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T 3 hq@sddlZddlZddlZdZddZddZdZdd ZGd d d ejj Z Gd d d ejj Z Gddde Z Gddde ZGddde ZGddde ZGddde ZGddde ZGdddejjZGdddejj ZGdddeZGd d!d!eZGd"d#d#eZGd$d%d%eZGd&d'd'eZGd(d)d)eZGd*d+d+ejjZGd,d-d-ejjZGd.d/d/eZGd0d1d1eZGd2d3d3ejjZ Gd4d5d5ejj Z!Gd6d7d7e!Z"Gd8d9d9e!Z#Gd:d;d;e!Z$Gdd?d?ejjZ&Gd@dAdAejj Z'GdBdCdCe'Z(GdDdEdEe'Z)GdFdGdGe'Z*GdHdIdIe'Z+GdJdKdKe'Z,GdLdMdMe'Z-GdNdOdOejjZ.GdPdQdQejj Z/GdRdSdSe/Z0GdTdUdUe/Z1GdVdWdWejjZ2GdXdYdYejj Z3GdZd[d[e3Z4Gd\d]d]e3Z5Gd^d_d_ejjZ6Gd`dadaejj Z7Gdbdcdce7Z8Gdddedee7Z9Gdfdgdgejj Z:Gdhdidie:Z;GdjdkdkejjZ$N) isinstancerZTypetag_versioned_namespacerematch)xZ template_namerrris_specialization_of!s  rc@seZdZddZdS)LibStdCxxXMethodcCstjjj||||_dS)N)rxmethodXMethod__init__ worker_class)selfnamerrrrr.szLibStdCxxXMethod.__init__N)__name__ __module__ __qualname__rrrrrr-src@seZdZddZddZdS)ArrayWorkerBasecCs||_||_dS)N) _val_type_size)rval_typesizerrrr6szArrayWorkerBase.__init__cCstjd}|j|jjjS)Nz (void *) 0)rZparse_and_evalcastrpointer dereference)rZnullptrrrr null_value:s zArrayWorkerBase.null_valueN)rrrrr"rrrrr5src@s,eZdZddZddZddZddZd S) ArraySizeWorkercCstj|||dS)N)rr)rrrrrrr@szArraySizeWorker.__init__cCsdS)Nr)rrrr get_arg_typesCszArraySizeWorker.get_arg_typescCstS)N)r)robjrrrget_result_typeFszArraySizeWorker.get_result_typecCs|jS)N)r)rr%rrr__call__IszArraySizeWorker.__call__N)rrrrr$r&r'rrrrr#?sr#c@s,eZdZddZddZddZddZd S) ArrayEmptyWorkercCstj|||dS)N)rr)rrrrrrrNszArrayEmptyWorker.__init__cCsdS)Nr)rrrrr$QszArrayEmptyWorker.get_arg_typescCstS)N)r)rr%rrrr&Tsz ArrayEmptyWorker.get_result_typecCst|jdkS)Nr)intr)rr%rrrr'WszArrayEmptyWorker.__call__N)rrrrr$r&r'rrrrr(Msr(c@s,eZdZddZddZddZddZd S) ArrayFrontWorkercCstj|||dS)N)rr)rrrrrrr\szArrayFrontWorker.__init__cCsdS)Nr)rrrrr$_szArrayFrontWorker.get_arg_typescCs|jS)N)r)rr%rrrr&bsz ArrayFrontWorker.get_result_typecCs&t|jdkr|ddS|jSdS)Nr_M_elems)r)rr")rr%rrrr'es zArrayFrontWorker.__call__N)rrrrr$r&r'rrrrr*[sr*c@s,eZdZddZddZddZddZd S) ArrayBackWorkercCstj|||dS)N)rr)rrrrrrrmszArrayBackWorker.__init__cCsdS)Nr)rrrrr$pszArrayBackWorker.get_arg_typescCs|jS)N)r)rr%rrrr&sszArrayBackWorker.get_result_typecCs,t|jdkr |d|jdS|jSdS)Nrr+)r)rr")rr%rrrr'vszArrayBackWorker.__call__N)rrrrr$r&r'rrrrr,lsr,c@s,eZdZddZddZddZddZd S) ArrayAtWorkercCstj|||dS)N)rr)rrrrrrr~szArrayAtWorker.__init__cCstS)N)r)rrrrr$szArrayAtWorker.get_arg_typescCs|jS)N)r)rr%indexrrrr&szArrayAtWorker.get_result_typecCs4t|t|jkr(tdt||jf|d|S)Nz%Array index "%d" should not be >= %d.r+)r)r IndexError)rr%r/rrrr'szArrayAtWorker.__call__N)rrrrr$r&r'rrrrr.}sr.c@s,eZdZddZddZddZddZd S) ArraySubscriptWorkercCstj|||dS)N)rr)rrrrrrrszArraySubscriptWorker.__init__cCstS)N)r)rrrrr$sz"ArraySubscriptWorker.get_arg_typescCs|jS)N)r)rr%r/rrrr&sz$ArraySubscriptWorker.get_result_typecCs&t|jdkr|d|S|jSdS)Nrr+)r)rr")rr%r/rrrr's zArraySubscriptWorker.__call__N)rrrrr$r&r'rrrrr1sr1c@seZdZddZddZdS)ArrayMethodsMatchercsftjjjtdtdttdttdttdt tdt tdt d_ fd d j D_ dS) Narrayremptyfrontbackatz operator[])rr4r5r6r7z operator[]csg|]}j|qSr) _method_dict).0m)rrr sz0ArrayMethodsMatcher.__init__..)rrXMethodMatcherrmatcher_name_prefixrr#r(r*r,r.r1r8methods)rr)rrrs  zArrayMethodsMatcher.__init__c Cs^t|dsdS|jj|}|dks*|j r.dSy|jd}|jd}Wn dS|j||S)Nr3rr-)rr8getenabledtemplate_argumentr)r class_type method_namemethodZ value_typerrrrr s   zArrayMethodsMatcher.matchN)rrrrr rrrrr2s r2c@s$eZdZddZddZddZdS)DequeWorkerBasecCs||_d|jpd|_dS)Nir-)rsizeof_bufsize)rrrrrrszDequeWorkerBase.__init__cCsf|dd}|dd}|d|dkr,dS|j|d|dd|d|d|d |dS) N_M_impl_M_start _M_finish_M_curr_M_noder-_M_first_M_last)rG)rr%startfinishrrrrs   zDequeWorkerBase.sizecCs`|dd}|d|d}||kr0|d|S||}|ddt||j}|||jS)NrHrIrNrKrLr-)r)rG)rr%idxrOZfirst_node_sizeZ index_noderrrr/s  zDequeWorkerBase.indexN)rrrrrr/rrrrrEs rEc@s$eZdZddZddZddZdS)DequeEmptyWorkercCsdS)Nr)rrrrr$szDequeEmptyWorker.get_arg_typescCstS)N)r)rr%rrrr&sz DequeEmptyWorker.get_result_typecCs |ddd|dddkS)NrHrIrKrJr)rr%rrrr'szDequeEmptyWorker.__call__N)rrrr$r&r'rrrrrRsrRc@s$eZdZddZddZddZdS)DequeSizeWorkercCsdS)Nr)rrrrr$szDequeSizeWorker.get_arg_typescCstS)N)r)rr%rrrr&szDequeSizeWorker.get_result_typecCs |j|S)N)r)rr%rrrr'szDequeSizeWorker.__call__N)rrrr$r&r'rrrrrSsrSc@s$eZdZddZddZddZdS)DequeFrontWorkercCsdS)Nr)rrrrr$szDequeFrontWorker.get_arg_typescCs|jS)N)r)rr%rrrr&sz DequeFrontWorker.get_result_typecCs|ddddS)NrHrIrKrr)rr%rrrr'szDequeFrontWorker.__call__N)rrrr$r&r'rrrrrTsrTc@s$eZdZddZddZddZdS)DequeBackWorkercCsdS)Nr)rrrrr$szDequeBackWorker.get_arg_typescCs|jS)N)r)rr%rrrr&szDequeBackWorker.get_result_typecCs^|ddd|dddkrF|dddd}|d|jdS|ddddSdS) NrHrJrKrMrLr-r)rG)rr% prev_noderrrr's zDequeBackWorker.__call__N)rrrr$r&r'rrrrrUsrUc@s$eZdZddZddZddZdS)DequeSubscriptWorkercCstS)N)r)rrrrr$ sz"DequeSubscriptWorker.get_arg_typescCs|jS)N)r)rr% subscriptrrrr& sz$DequeSubscriptWorker.get_result_typecCs |j||S)N)r/)rr%rYrrrr'szDequeSubscriptWorker.__call__N)rrrr$r&r'rrrrrX srXc@s$eZdZddZddZddZdS) DequeAtWorkercCstS)N)r)rrrrr$szDequeAtWorker.get_arg_typescCs|jS)N)r)rr%r/rrrr&szDequeAtWorker.get_result_typecCs@t|j|}t||kr0tdt||fn |j||SdS)Nz%Deque index "%d" should not be >= %d.)r)rr0r/)rr%r/Z deque_sizerrrr's  zDequeAtWorker.__call__N)rrrr$r&r'rrrrrZsrZc@seZdZddZddZdS)DequeMethodsMatchercsftjjjtdtdttdttdttdt tdt tdt d_ fd d j D_ dS) Ndequer4rr5r6z operator[]r7)r4rr5r6z operator[]r7csg|]}j|qSr)r8)r9r:)rrrr;0sz0DequeMethodsMatcher.__init__..)rrr<rr=rrRrSrTrUrXrZr8r>)rr)rrr%s  zDequeMethodsMatcher.__init__cCs>t|dsdS|jj|}|dks*|j r.dS|j|jdS)Nr\r)rr8r?r@rrA)rrBrCrDrrrr 2s   zDequeMethodsMatcher.matchN)rrrrr rrrrr[$s r[c@seZdZddZddZdS)ForwardListWorkerBasecCs||_||_dS)N)r _node_type)rr node_typerrrr>szForwardListWorkerBase.__init__cCsdS)Nr)rrrrr$Bsz#ForwardListWorkerBase.get_arg_typesN)rrrrr$rrrrr]=sr]c@seZdZddZddZdS)ForwardListEmptyWorkercCstS)N)r)rr%rrrr&Gsz&ForwardListEmptyWorker.get_result_typecCs|ddddkS)NrH_M_head_M_nextrr)rr%rrrr'JszForwardListEmptyWorker.__call__N)rrrr&r'rrrrr`Fsr`c@seZdZddZddZdS)ForwardListFrontWorkercCs|jS)N)r)rr%rrrr&Osz&ForwardListFrontWorker.get_result_typecCs:|dddj|j}|ddj}|j|jjjS)NrHrarb _M_storage)rr^addressrr r!)rr%nodeZ val_addressrrrr'RszForwardListFrontWorker.__call__N)rrrr&r'rrrrrcNsrcc@seZdZddZddZdS)ForwardListMethodsMatchercsJtd}tjjj|tdttdtd_fddjD_ dS)N forward_listr4r5)r4r5csg|]}j|qSr)r8)r9r:)rrrr;`sz6ForwardListMethodsMatcher.__init__..) r=rrr<rrr`rcr8r>)rZ matcher_namer)rrrYs z"ForwardListMethodsMatcher.__init__cCsZt|dsdS|jj|}|dks*|j r.dS|jd}tjt|dj}|j ||S)Nrhrz::_Node) rr8r?r@rArrstrr r)rrBrCrDrr_rrrr bs   zForwardListMethodsMatcher.matchN)rrrrr rrrrrgXs rgc@s$eZdZddZddZddZdS)ListWorkerBasecCs||_||_dS)N)rr^)rrr_rrrrpszListWorkerBase.__init__cCsdS)Nr)rrrrr$tszListWorkerBase.get_arg_typescCsB|j}|jjdjdkr$|dS|dj}|j|jjjS)Nr-Z_M_datard)r!typefieldsrrerrr )rrfZaddrrrrget_value_from_nodews  z"ListWorkerBase.get_value_from_nodeN)rrrrr$rmrrrrrjosrjc@seZdZddZddZdS)ListEmptyWorkercCstS)N)r)rr%rrrr&szListEmptyWorker.get_result_typecCs&|dd}|d|jkrdSdSdS)NrHrLrbTF)re)rr%Z base_noderrrr's zListEmptyWorker.__call__N)rrrr&r'rrrrrnsrnc@seZdZddZddZdS)ListSizeWorkercCstS)N)r)rr%rrrr&szListSizeWorker.get_result_typecCsD|ddd}|ddj}d}x||kr>|d}|d7}q$W|S)NrHrLrbrr-)re)rr%Z begin_nodeZend_noderrrrr's  zListSizeWorker.__call__N)rrrr&r'rrrrrosroc@seZdZddZddZdS)ListFrontWorkercCs|jS)N)r)rr%rrrr&szListFrontWorker.get_result_typecCs"|dddj|j}|j|S)NrHrLrb)rr^rm)rr%rfrrrr'szListFrontWorker.__call__N)rrrr&r'rrrrrpsrpc@seZdZddZddZdS)ListBackWorkercCs|jS)N)r)rr%rrrr&szListBackWorker.get_result_typecCs"|dddj|j}|j|S)NrHrLZ_M_prev)rr^rm)rr%rWrrrr'szListBackWorker.__call__N)rrrr&r'rrrrrqsrqc@seZdZddZddZdS)ListMethodsMatchercsVtjjjtdtdttdttdttdt d_ fddj D_ dS) Nlistr4rr5r6)r4rr5r6csg|]}j|qSr)r8)r9r:)rrrr;sz/ListMethodsMatcher.__init__..) rrr<rr=rrnrorprqr8r>)rr)rrrs  zListMethodsMatcher.__init__cCsZt|dsdS|jj|}|dks*|j r.dS|jd}tjt|dj}|j ||S)Nz(__cxx11::)?listrz::_Node) rr8r?r@rArrrir r)rrBrCrDrr_rrrr s   zListMethodsMatcher.matchN)rrrrr rrrrrrs rrc@s$eZdZddZddZddZdS)VectorWorkerBasecCs ||_dS)N)r)rrrrrrszVectorWorkerBase.__init__cCsz|jjtjkr^|ddd}|ddd}|ddd}|jjjd}||||S|dd|ddSdS)NrHrI_M_prJZ _M_offset)rcoderTYPE_CODE_BOOLr!rkrF)rr%rOrPZ finish_offsetbit_sizerrrrszVectorWorkerBase.sizecCsj|jjtjkrV|ddd}|jjjd}|||}||}|jd|>@dkS|dd|SdS)NrHrIrurvr-r)rrwrrxr!rkrF)rr%r/rOryZvalpoffsetrrrr?s zVectorWorkerBase.getN)rrrrrr?rrrrrts rtc@s$eZdZddZddZddZdS)VectorEmptyWorkercCsdS)Nr)rrrrr$szVectorEmptyWorker.get_arg_typescCstS)N)r)rr%rrrr&sz!VectorEmptyWorker.get_result_typecCst|j|dkS)Nr)r)r)rr%rrrr'szVectorEmptyWorker.__call__N)rrrr$r&r'rrrrr{sr{c@s$eZdZddZddZddZdS)VectorSizeWorkercCsdS)Nr)rrrrr$szVectorSizeWorker.get_arg_typescCstS)N)r)rr%rrrr&sz VectorSizeWorker.get_result_typecCs |j|S)N)r)rr%rrrr'szVectorSizeWorker.__call__N)rrrr$r&r'rrrrr|sr|c@s$eZdZddZddZddZdS)VectorFrontWorkercCsdS)Nr)rrrrr$szVectorFrontWorker.get_arg_typescCs|jS)N)r)rr%rrrr&sz!VectorFrontWorker.get_result_typecCs |j|dS)Nr)r?)rr%rrrr'szVectorFrontWorker.__call__N)rrrr$r&r'rrrrr}sr}c@s$eZdZddZddZddZdS)VectorBackWorkercCsdS)Nr)rrrrr$szVectorBackWorker.get_arg_typescCs|jS)N)r)rr%rrrr&sz VectorBackWorker.get_result_typecCs|j|t|j|dS)Nr-)r?r)r)rr%rrrr'szVectorBackWorker.__call__N)rrrr$r&r'rrrrr~sr~c@s$eZdZddZddZddZdS)VectorAtWorkercCstS)N)r)rrrrr$ szVectorAtWorker.get_arg_typescCs|jS)N)r)rr%r/rrrr&szVectorAtWorker.get_result_typecCs>t|j|}t||kr.tdt||f|j|t|S)Nz&Vector index "%d" should not be >= %d.)r)rr0r?)rr%r/rrrrr's  zVectorAtWorker.__call__N)rrrr$r&r'rrrrr src@s$eZdZddZddZddZdS)VectorSubscriptWorkercCstS)N)r)rrrrr$sz#VectorSubscriptWorker.get_arg_typescCs|jS)N)r)rr%rYrrrr&sz%VectorSubscriptWorker.get_result_typecCs|j|t|S)N)r?r))rr%rYrrrr'!szVectorSubscriptWorker.__call__N)rrrr$r&r'rrrrrsrc@seZdZddZddZdS)VectorMethodsMatchercsftjjjtdtdttdttdttdt tdt tdt d_ fd d j D_ dS) Nvectorrr4r5r6r7z operator[])rr4r5r6r7z operator[]csg|]}j|qSr)r8)r9r:)rrrr;2sz1VectorMethodsMatcher.__init__..)rrr<rr=rr|r{r}r~rrr8r>)rr)rrr&s   zVectorMethodsMatcher.__init__cCs>t|dsdS|jj|}|dks*|j r.dS|j|jdS)Nrr)rr8r?r@rrA)rrBrCrDrrrr 4s   zVectorMethodsMatcher.matchN)rrrrr rrrrr%src@s$eZdZddZddZddZdS)AssociativeContainerWorkerBasecCs ||_dS)N) _unordered)r unorderedrrrr@sz'AssociativeContainerWorkerBase.__init__cCs&|jr|ddS|dddSdS)NZ_M_hZ_M_element_count_M_trHZ _M_node_count)r)rr%rrr node_countCs z)AssociativeContainerWorkerBase.node_countcCsdS)Nr)rrrrr$Isz,AssociativeContainerWorkerBase.get_arg_typesN)rrrrrr$rrrrr?src@seZdZddZddZdS)AssociativeContainerEmptyWorkercCstS)N)r)rr%rrrr&Nsz/AssociativeContainerEmptyWorker.get_result_typecCst|j|dkS)Nr)r)r)rr%rrrr'Qsz(AssociativeContainerEmptyWorker.__call__N)rrrr&r'rrrrrMsrc@seZdZddZddZdS)AssociativeContainerSizeWorkercCstS)N)r)rr%rrrr&Vsz.AssociativeContainerSizeWorker.get_result_typecCs |j|S)N)r)rr%rrrr'Ysz'AssociativeContainerSizeWorker.__call__N)rrrr&r'rrrrrUsrc@seZdZddZddZdS)"AssociativeContainerMethodsMatchercsLtjjjt||_tdttdtd_ fddj D_ dS)Nrr4)rr4csg|]}j|qSr)r8)r9r:)rrrr;gsz?AssociativeContainerMethodsMatcher.__init__..) rrr<rr=_namerrrr8r>)rrr)rrr^s   z+AssociativeContainerMethodsMatcher.__init__cCsDt||jsdS|jj|}|dks,|j r0dSd|jk}|j|S)Nr)rrr8r?r@r)rrBrCrDrrrrr is   z(AssociativeContainerMethodsMatcher.matchN)rrrrr rrrrr]s rc@s8eZdZdZddZddZddZdd Zd d Zd S) UniquePtrGetWorkerzS Implement std::unique_ptr::get() and std::unique_ptr::operator->(). cCs*|jtjk|_|jr |j|_n||_dS)N)rwrTYPE_CODE_ARRAY _is_arraytarget _elem_type)r elem_typerrrrzs zUniquePtrGetWorker.__init__cCsdS)Nr)rrrrr$sz UniquePtrGetWorker.get_arg_typescCs |jjS)N)rr )rr%rrrr&sz"UniquePtrGetWorker.get_result_typecCs|dkp|j S)Nr?)r)rrCrrr _supportsszUniquePtrGetWorker._supportscCs|jjjdjj}t|dr.|dd}nt|drB|d}ndS|jjdj}|jdj}|jd}|jdkr|j|dS|jr|j|jSdSdS)Nrz__uniq_ptr_(data|impl)rtupler-Z _M_head_impl)r!rkrlr rrrZ is_base_class)rr%Z impl_typeZ tuple_memberZtuple_impl_typeZtuple_head_typeZ head_fieldrrrr's      zUniquePtrGetWorker.__call__N) rrr__doc__rr$r&rr'rrrrrus rc@s0eZdZdZddZddZddZdd Zd S) UniquePtrDerefWorkerz*Implement std::unique_ptr::operator*().cCstj||dS)N)rr)rrrrrrszUniquePtrDerefWorker.__init__cCs|jS)N)r)rr%rrrr&sz$UniquePtrDerefWorker.get_result_typecCs|j S)N)r)rrCrrrrszUniquePtrDerefWorker._supportscCstj||jS)N)rr'r!)rr%rrrr'szUniquePtrDerefWorker.__call__N)rrrrrr&rr'rrrrrs rc@s8eZdZdZddZddZddZdd Zd d Zd S) UniquePtrSubscriptWorkerz1Implement std::unique_ptr::operator[](size_t).cCstj||dS)N)rr)rrrrrrsz!UniquePtrSubscriptWorker.__init__cCstS)N)r)rrrrr$sz&UniquePtrSubscriptWorker.get_arg_typescCs|jS)N)r)rr%r/rrrr&sz(UniquePtrSubscriptWorker.get_result_typecCs|jS)N)r)rrCrrrrsz"UniquePtrSubscriptWorker._supportscCstj|||S)N)rr')rr%r/rrrr'sz!UniquePtrSubscriptWorker.__call__N) rrrrrr$r&rr'rrrrrs rc@seZdZddZddZdS)UniquePtrMethodsMatchercsVtjjjtdtdttdttdttdtd_ fddj D_ dS) N unique_ptrr?z operator->z operator*z operator[])r?z operator->z operator*z operator[]csg|]}j|qSr)r8)r9r:)rrrr;sz4UniquePtrMethodsMatcher.__init__..) rrr<rr=rrrrr8r>)rr)rrrs  z UniquePtrMethodsMatcher.__init__cCsPt|dsdS|jj|}|dks*|j r.dS|j|jd}|j|rL|SdS)Nrr)rr8r?r@rrAr)rrBrCrDworkerrrrr s   zUniquePtrMethodsMatcher.matchN)rrrrr rrrrrs rc@s8eZdZdZddZddZddZdd Zd d Zd S) SharedPtrGetWorkerzT Implements std::shared_ptr::get() and std::shared_ptr::operator->(). cCs*|jtjk|_|jr |j|_n||_dS)N)rwrrrrr)rrrrrrs zSharedPtrGetWorker.__init__cCsdS)Nr)rrrrr$sz SharedPtrGetWorker.get_arg_typescCs |jjS)N)rr )rr%rrrr&sz"SharedPtrGetWorker.get_result_typecCs|dkp|j S)Nr?)r)rrCrrrrszSharedPtrGetWorker._supportscCs|dS)NZ_M_ptrr)rr%rrrr'szSharedPtrGetWorker.__call__N) rrrrrr$r&rr'rrrrrs rc@s0eZdZdZddZddZddZdd Zd S) SharedPtrDerefWorkerz*Implement std::shared_ptr::operator*().cCstj||dS)N)rr)rrrrrrszSharedPtrDerefWorker.__init__cCs|jS)N)r)rr%rrrr&sz$SharedPtrDerefWorker.get_result_typecCs|j S)N)r)rrCrrrrszSharedPtrDerefWorker._supportscCstj||jS)N)rr'r!)rr%rrrr'szSharedPtrDerefWorker.__call__N)rrrrrr&rr'rrrrrs rc@s8eZdZdZddZddZddZdd Zd d Zd S) SharedPtrSubscriptWorkerz1Implement std::shared_ptr::operator[](size_t).cCstj||dS)N)rr)rrrrrr sz!SharedPtrSubscriptWorker.__init__cCstS)N)r)rrrrr$sz&SharedPtrSubscriptWorker.get_arg_typescCs|jS)N)r)rr%r/rrrr&sz(SharedPtrSubscriptWorker.get_result_typecCs|jS)N)r)rrCrrrrsz"SharedPtrSubscriptWorker._supportscCsZtjdt|j}|rJ|t|jdkrJtd|jt|t|jdftj|||S)Nz .*\[(\d+)]$r-z.shared_ptr<%s> index "%d" should not be >= %d.) r r rirr)groupr0rr')rr%r/r:rrrr's z!SharedPtrSubscriptWorker.__call__N) rrrrrr$r&rr'rrrrr s rc@s8eZdZdZddZddZddZdd Zd d Zd S) SharedPtrUseCountWorkerz*Implement std::shared_ptr::use_count().cCsdS)Nr)rrrrrr%sz SharedPtrUseCountWorker.__init__cCsdS)Nr)rrrrr$(sz%SharedPtrUseCountWorker.get_arg_typescCs tjdS)NZlong)rr)rr%rrrr&+sz'SharedPtrUseCountWorker.get_result_typecCsdS)NTr)rrCrrrr.sz!SharedPtrUseCountWorker._supportscCs|dd}|r|dSdS)NZ _M_refcountZ_M_piZ _M_use_countrr)rr%Z refcountsrrrr'1s z SharedPtrUseCountWorker.__call__N) rrrrrr$r&rr'rrrrr"s rc@s(eZdZdZddZddZddZdS) SharedPtrUniqueWorkerz'Implement std::shared_ptr::unique().cCstj||dS)N)rr)rrrrrr9szSharedPtrUniqueWorker.__init__cCs tjdS)Nr)rr)rr%rrrr&<sz%SharedPtrUniqueWorker.get_result_typecCstj||dkS)Nr-)rr')rr%rrrr'?szSharedPtrUniqueWorker.__call__N)rrrrrr&r'rrrrr6src@seZdZddZddZdS)SharedPtrMethodsMatchercsftjjjtdtdttdttdttdttdt tdt d_ fd d j D_ dS) N shared_ptrr?z operator->z operator*z operator[] use_countunique)r?z operator->z operator*z operator[]rrcsg|]}j|qSr)r8)r9r:)rrrr;Osz4SharedPtrMethodsMatcher.__init__..) rrr<rr=rrrrrrr8r>)rr)rrrDs  z SharedPtrMethodsMatcher.__init__cCsPt|dsdS|jj|}|dks*|j r.dS|j|jd}|j|rL|SdS)Nrr)rr8r?r@rrAr)rrBrCrDrrrrr Qs   zSharedPtrMethodsMatcher.matchN)rrrrr rrrrrCs rcCstjj|ttjj|ttjj|ttjj|ttjj|ttjj|tdtjj|tdtjj|tdtjj|tdtjj|tdtjj|tdtjj|tdtjj|tdtjj|t tjj|t dS) NsetmapZmultisetZmultimapZ unordered_setZ unordered_mapZunordered_multisetZunordered_multimap) rrZregister_xmethod_matcherr2rgr[rrrrrr)Zlocusrrrregister_libstdcxx_xmethods]s.        r)>rZ gdb.xmethodr r=rrr rrrrZ XMethodWorkerrr#r(r*r,r.r1r<r2rErRrSrTrUrXrZr[r]r`rcrgrjrnrorprqrrrtr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrsr                *