[call-traits][param_type] why is sizeof(void*) chosen as the limit for passing by value?

Hi Boosters, It seems to me that many other slightly larger types could benefit from pass by value. For example, I rarely write foo( const double& ); but always foo( double ); So param_type<T>::type don't even follow this guideline. I tried a simple example program for the auto_buffer (vector like) class I'm implementing: #include <boost/auto_buffer/auto_buffer.hpp> int main() { boost::auto_buffer<double> buf( 2001u ); buf.push_back(42.); } When I pass by value in push_back(), the assembler is somewhat different, and as far as I can tell, better. Basically my compiler (vc9) can inline the load of 42. into push_back() whereas in the call by reference, the parameter is passes by a pointer (in a register). In the by-value version the compiler is able to optimize away completely the call to alllocate and delete memory whereas this is not so for the by-reference version. This makes me wonder why we shouldn't expect e.g. std::pair<int,int> and std::bitset<64> to be easily passable in registers. With this in mind, I think we should consider changing the limit for param_type to sizeof(long double) or even 2*sizeof(int). Of course, we should only pass types with a trivial assignment operator by value. Any thoughts? -Thorsten

Thorsten Ottosen wrote:
Hi Boosters,
It seems to me that many other slightly larger types could benefit from pass by value. For example, I rarely write [...] With this in mind, I think we should consider changing the limit for param_type to sizeof(long double) or even 2*sizeof(int). Of course, we should only pass types with a trivial assignment operator by value.
By "trivial assignment operator", you really mean "trivial copy constructor", right? You might want the "by-value size limit" to be platform dependent. I can imagine that the limit for 64-bit systems could arguably be twice that for 32-bit systems. Do you find the same optimization opportunity when passing a pair<float,float> by value as you did for passing a double by value? - Jeff

Jeffrey Hellrung skrev:
Thorsten Ottosen wrote:
Hi Boosters,
It seems to me that many other slightly larger types could benefit from pass by value. For example, I rarely write [...] With this in mind, I think we should consider changing the limit for param_type to sizeof(long double) or even 2*sizeof(int). Of course, we should only pass types with a trivial assignment operator by value.
By "trivial assignment operator", you really mean "trivial copy constructor", right?
Right.
You might want the "by-value size limit" to be platform dependent. I can imagine that the limit for 64-bit systems could arguably be twice that for 32-bit systems.
by using 2*sizeof(int) we should probably get this behavior by default. Do we know any compilers where int does not have word size? But anyway, there might be compiler differences even on the same platform.
Do you find the same optimization opportunity when passing a pair<float,float> by value as you did for passing a double by value? Possibly. By-value generates the least assembler (see attached), but none of the them removed the call to new/delete.
I'm not competent enough in assembler to see what is fastest (the instructions are different compared to a single double), but main() differs by a whole 16 lines of assembler between the two! -Thorsten ; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.30729.01 TITLE D:\test\pass_by_ref.cpp .686P .XMM include listing.inc .model flat INCLUDELIB OLDNAMES PUBLIC ??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`RTTI Complete Object Locator' PUBLIC ??_R3bad_alloc@std@@8 ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_R3exception@std@@8 ; std::exception::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2exception@std@@8 ; std::exception::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ ; `string' PUBLIC ??0?$pair@MM@std@@QAE@ABM0@Z ; std::pair<float,float>::pair<float,float> PUBLIC ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> > PUBLIC ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ; boost::aligned_storage<2048,4>::aligned_storage<2048,4> PUBLIC ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type PUBLIC ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > PUBLIC ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back PUBLIC ??0bad_alloc@std@@QAE@PBD@Z ; std::bad_alloc::bad_alloc PUBLIC ??1bad_alloc@std@@UAE@XZ ; std::bad_alloc::~bad_alloc PUBLIC ??_Gbad_alloc@std@@UAEPAXI@Z ; std::bad_alloc::`scalar deleting destructor' PUBLIC ??0bad_alloc@std@@QAE@ABV01@@Z ; std::bad_alloc::bad_alloc PUBLIC ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z ; std::_Allocate<std::pair<float,float> > PUBLIC ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate PUBLIC ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address PUBLIC ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ ; boost::aligned_storage<2048,4>::address PUBLIC ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address PUBLIC ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate PUBLIC ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin PUBLIC ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end PUBLIC ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::pair<float,float> *> PUBLIC ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z ; std::_Checked_base<std::pair<float,float> *> PUBLIC ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??2@YAPAXIPAX@Z ; operator new PUBLIC ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z ; std::_Construct<std::pair<float,float>,std::pair<float,float> > PUBLIC ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z ; std::_Destroy<std::pair<float,float> > PUBLIC ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1> PUBLIC ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> PUBLIC ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> PUBLIC ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer PUBLIC ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::deallocate PUBLIC ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator PUBLIC ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate PUBLIC ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy PUBLIC ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4> PUBLIC ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type PUBLIC ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > PUBLIC ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor' PUBLIC ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl PUBLIC ??$max@I@std@@YAABIABI0@Z ; std::max<unsigned int> PUBLIC ??$new_capacity@I@default_grow_policy@boost@@SAII@Z ; boost::default_grow_policy::new_capacity<unsigned int> PUBLIC ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl PUBLIC ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve PUBLIC ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back PUBLIC ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc `RTTI Type Descriptor' PUBLIC ??_R0?AVexception@std@@@8 ; std::exception `RTTI Type Descriptor' PUBLIC __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 PUBLIC __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 PUBLIC __CTA2?AVbad_alloc@std@@ PUBLIC __TI2?AVbad_alloc@std@@ PUBLIC ??_7bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' EXTRN ?what@exception@std@@UBEPBDXZ:PROC ; std::exception::what EXTRN ??0exception@std@@QAE@ABV01@@Z:PROC ; std::exception::exception EXTRN @__security_check_cookie@4:PROC EXTRN ??2@YAPAXI@Z:PROC ; operator new EXTRN __imp_??0exception@std@@QAE@ABQBD@Z:PROC EXTRN __imp_?what@exception@std@@UBEPBDXZ:PROC EXTRN __imp_??1exception@std@@UAE@XZ:PROC EXTRN ??_Ebad_alloc@std@@UAEPAXI@Z:PROC ; std::bad_alloc::`vector deleting destructor' EXTRN __imp_??0exception@std@@QAE@ABV01@@Z:PROC EXTRN ??_7type_info@@6B@:QWORD ; type_info::`vftable' EXTRN ??3@YAXPAX@Z:PROC ; operator delete ; COMDAT ??_7bad_alloc@std@@6B@ CONST SEGMENT ??_7bad_alloc@std@@6B@ DD FLAT:??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' DD FLAT:??_Ebad_alloc@std@@UAEPAXI@Z DD FLAT:?what@exception@std@@UBEPBDXZ CONST ENDS ; COMDAT ??_R4bad_alloc@std@@6B@ rdata$r SEGMENT ??_R4bad_alloc@std@@6B@ DD 00H ; std::bad_alloc::`RTTI Complete Object Locator' DD 00H DD 00H DD FLAT:??_R0?AVbad_alloc@std@@@8 DD FLAT:??_R3bad_alloc@std@@8 rdata$r ENDS ; COMDAT ??_R3bad_alloc@std@@8 rdata$r SEGMENT ??_R3bad_alloc@std@@8 DD 00H ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' DD 00H DD 02H DD FLAT:??_R2bad_alloc@std@@8 rdata$r ENDS ; COMDAT ??_R2bad_alloc@std@@8 rdata$r SEGMENT ??_R2bad_alloc@std@@8 DD FLAT:??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' DD FLAT:??_R1A@?0A@EA@exception@std@@8 rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@exception@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@exception@std@@8 DD FLAT:??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 00H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3exception@std@@8 rdata$r ENDS ; COMDAT ??_R3exception@std@@8 rdata$r SEGMENT ??_R3exception@std@@8 DD 00H ; std::exception::`RTTI Class Hierarchy Descriptor' DD 00H DD 01H DD FLAT:??_R2exception@std@@8 rdata$r ENDS ; COMDAT ??_R2exception@std@@8 rdata$r SEGMENT ??_R2exception@std@@8 DD FLAT:??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array' rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@bad_alloc@std@@8 DD FLAT:??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 01H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3bad_alloc@std@@8 rdata$r ENDS ; COMDAT __TI2?AVbad_alloc@std@@ xdata$x SEGMENT __TI2?AVbad_alloc@std@@ DD 00H DD FLAT:??1bad_alloc@std@@UAE@XZ DD 00H DD FLAT:__CTA2?AVbad_alloc@std@@ xdata$x ENDS ; COMDAT __CTA2?AVbad_alloc@std@@ xdata$x SEGMENT __CTA2?AVbad_alloc@std@@ DD 02H DD FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 xdata$x ENDS ; COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 xdata$x SEGMENT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H DD FLAT:??_R0?AVexception@std@@@8 DD 00H DD 0ffffffffH ORG $+4 DD 0cH DD FLAT:??0exception@std@@QAE@ABV01@@Z xdata$x ENDS ; COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 xdata$x SEGMENT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H DD FLAT:??_R0?AVbad_alloc@std@@@8 DD 00H DD 0ffffffffH ORG $+4 DD 0cH DD FLAT:??0bad_alloc@std@@QAE@ABV01@@Z xdata$x ENDS ; COMDAT ??_R0?AVexception@std@@@8 _DATA SEGMENT ??_R0?AVexception@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::exception `RTTI Type Descriptor' DD 00H DB '.?AVexception@std@@', 00H _DATA ENDS ; COMDAT ??_R0?AVbad_alloc@std@@@8 _DATA SEGMENT ??_R0?AVbad_alloc@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::bad_alloc `RTTI Type Descriptor' DD 00H DB '.?AVbad_alloc@std@@', 00H __bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ ; COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ CONST SEGMENT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string' ; Function compile flags: /Ogtpy CONST ENDS ; COMDAT ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z _TEXT SEGMENT ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z PROC ; std::_Destroy<std::pair<float,float> >, COMDAT ; File d:\c++\visual91\vc\include\xmemory ; Line 60 ret 0 ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z ENDP ; std::_Destroy<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 1 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::pair<float,float> *>, COMDAT ; __It$ = eax ; File d:\c++\visual91\vc\include\xutility ; Line 1147 mov eax, DWORD PTR [eax] ; Line 1148 ret 0 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z _TEXT SEGMENT __Cat$ = -1 ; size = 1 ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z PROC ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; Line 1509 push ecx ; Line 1511 mov al, BYTE PTR __Cat$[esp+4] ; Line 1512 pop ecx ret 0 ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z ENDP ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z _TEXT SEGMENT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z PROC ; std::_Checked_base<std::pair<float,float> *>, COMDAT ; __It$ = eax ; Line 1165 mov eax, DWORD PTR [eax] ; Line 1166 ret 0 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z ENDP ; std::_Checked_base<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z _TEXT SEGMENT ___that$ = 8 ; size = 4 ??0bad_alloc@std@@QAE@ABV01@@Z PROC ; std::bad_alloc::bad_alloc, COMDAT ; _this$ = ecx mov eax, DWORD PTR ___that$[esp-4] push esi push eax mov esi, ecx call DWORD PTR __imp_??0exception@std@@QAE@ABV01@@Z mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ mov eax, esi pop esi ret 4 ??0bad_alloc@std@@QAE@ABV01@@Z ENDP ; std::bad_alloc::bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$new_capacity@I@default_grow_policy@boost@@SAII@Z _TEXT SEGMENT ??$new_capacity@I@default_grow_policy@boost@@SAII@Z PROC ; boost::default_grow_policy::new_capacity<unsigned int>, COMDAT ; _old_capacity$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 96 add eax, eax add eax, eax ; Line 97 ret 0 ??$new_capacity@I@default_grow_policy@boost@@SAII@Z ENDP ; boost::default_grow_policy::new_capacity<unsigned int> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$max@I@std@@YAABIABI0@Z _TEXT SEGMENT ??$max@I@std@@YAABIABI0@Z PROC ; std::max<unsigned int>, COMDAT ; __Left$ = ecx ; __Right$ = eax ; File d:\c++\visual91\vc\include\xutility ; Line 3384 mov edx, DWORD PTR [ecx] cmp edx, DWORD PTR [eax] jb SHORT $LN4@max mov eax, ecx $LN4@max: ; Line 3385 ret 0 ??$max@I@std@@YAABIABI0@Z ENDP ; std::max<unsigned int> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ _TEXT SEGMENT ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ PROC ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 57 ret 0 ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ ENDP ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ _TEXT SEGMENT ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 731 mov ecx, DWORD PTR [eax+2056] mov edx, DWORD PTR [eax+2052] lea eax, DWORD PTR [edx+ecx*8] ; Line 732 ret 0 ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ _TEXT SEGMENT ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin, COMDAT ; _this$ = eax ; Line 721 mov eax, DWORD PTR [eax+2052] ; Line 722 ret 0 ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ _TEXT SEGMENT ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ PROC ; boost::aligned_storage<2048,4>::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 133 ret 0 ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ ENDP ; boost::aligned_storage<2048,4>::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z _TEXT SEGMENT ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z PROC ; std::allocator<std::pair<float,float> >::deallocate, COMDAT ; __Ptr$ = eax ; File d:\c++\visual91\vc\include\xmemory ; Line 140 push eax call ??3@YAXPAX@Z ; operator delete pop ecx ; Line 141 ret 0 ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z ENDP ; std::allocator<std::pair<float,float> >::deallocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ _TEXT SEGMENT ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ PROC ; boost::aligned_storage<2048,4>::aligned_storage<2048,4>, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 122 ret 0 ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ENDP ; boost::aligned_storage<2048,4>::aligned_storage<2048,4> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ _TEXT SEGMENT ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 1197 ret 0 ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ _TEXT SEGMENT ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator, COMDAT ; _this$ = eax ; Line 711 ret 0 ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z _TEXT SEGMENT _new_capacity$ = -4 ; size = 4 _n$ = 8 ; size = 4 ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl, COMDAT ; _this$ = eax ; Line 324 push ecx ; Line 326 mov eax, DWORD PTR [eax+2048] add eax, eax add eax, eax ; Line 328 cmp eax, DWORD PTR _n$[esp] mov DWORD PTR _new_capacity$[esp+4], eax lea eax, DWORD PTR _n$[esp] jb SHORT $LN9@new_capaci lea eax, DWORD PTR _new_capacity$[esp+4] $LN9@new_capaci: mov eax, DWORD PTR [eax] ; Line 329 pop ecx ret 4 ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z _TEXT SEGMENT _capacity$ = 8 ; size = 4 ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate, COMDAT ; _where$ = eax ; Line 183 cmp DWORD PTR _capacity$[esp-4], 256 ; 00000100H jbe SHORT $LN6@deallocate ; Line 185 push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN6@deallocate: ; Line 186 ret 4 ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ _TEXT SEGMENT ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ PROC ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4>, COMDAT ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 126 ret 0 ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ENDP ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z _TEXT SEGMENT ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type, COMDAT ; _this$ = eax ; _capacity$ = ecx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 1194 mov DWORD PTR [eax+2048], ecx ret 0 ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ _TEXT SEGMENT ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ PROC ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> >, COMDAT ; _this$ = eax ; File d:\c++\visual91\vc\include\xmemory ; Line 121 ret 0 ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ ENDP ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z _TEXT SEGMENT ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 290 cmp DWORD PTR [eax+2048], 256 ; 00000100H jbe SHORT $LN8@auto_buffe mov eax, DWORD PTR [eax+2052] push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN8@auto_buffe: ; Line 291 ret 0 ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ _TEXT SEGMENT ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type, COMDAT ret 0 ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type _TEXT ENDS EXTRN __fltused:DWORD ; Function compile flags: /Ogtpy ; COMDAT ??0?$pair@MM@std@@QAE@ABM0@Z _TEXT SEGMENT __Val2$ = 8 ; size = 4 ??0?$pair@MM@std@@QAE@ABM0@Z PROC ; std::pair<float,float>::pair<float,float>, COMDAT ; _this$ = eax ; __Val1$ = ecx ; File d:\c++\visual91\vc\include\utility ; Line 50 fld DWORD PTR [ecx] mov edx, DWORD PTR __Val2$[esp-4] fstp DWORD PTR [eax] fld DWORD PTR [edx] fstp DWORD PTR [eax+4] ; Line 51 ret 4 ??0?$pair@MM@std@@QAE@ABM0@Z ENDP ; std::pair<float,float>::pair<float,float> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ _TEXT SEGMENT ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >, COMDAT ; _this$ = ecx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 665 mov eax, DWORD PTR [ecx+2052] test eax, eax je SHORT $LN11@auto_buffe@2 ; Line 668 cmp DWORD PTR [ecx+2048], 256 ; 00000100H jbe SHORT $LN11@auto_buffe@2 push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN11@auto_buffe@2: ; Line 669 ret 0 ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??2@YAPAXIPAX@Z _TEXT SEGMENT ??2@YAPAXIPAX@Z PROC ; operator new, COMDAT ; __Where$ = eax ; File d:\c++\visual91\vc\include\new ; Line 60 ret 0 ??2@YAPAXIPAX@Z ENDP ; operator new ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1bad_alloc@std@@UAE@XZ _TEXT SEGMENT ??1bad_alloc@std@@UAE@XZ PROC ; std::bad_alloc::~bad_alloc, COMDAT ; _this$ = ecx ; File d:\c++\visual91\vc\include\exception ; Line 380 mov DWORD PTR [ecx], OFFSET ??_7bad_alloc@std@@6B@ ; Line 381 jmp DWORD PTR __imp_??1exception@std@@UAE@XZ ??1bad_alloc@std@@UAE@XZ ENDP ; std::bad_alloc::~bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0bad_alloc@std@@QAE@PBD@Z _TEXT SEGMENT __Message$ = -4 ; size = 4 ??0bad_alloc@std@@QAE@PBD@Z PROC ; std::bad_alloc::bad_alloc, COMDAT ; _this$ = esi ; Line 371 push ecx lea eax, DWORD PTR __Message$[esp+4] push eax mov ecx, esi mov DWORD PTR __Message$[esp+8], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ ; Line 372 mov eax, esi pop ecx ret 0 ??0bad_alloc@std@@QAE@PBD@Z ENDP ; std::bad_alloc::bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z _TEXT SEGMENT ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z PROC ; std::_Construct<std::pair<float,float>,std::pair<float,float> >, COMDAT ; __Ptr$ = eax ; __Val$ = ecx ; File d:\c++\visual91\vc\include\xmemory ; Line 52 test eax, eax je SHORT $LN3@Construct mov edx, DWORD PTR [ecx] mov DWORD PTR [eax], edx mov ecx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], ecx $LN3@Construct: ; Line 53 ret 0 ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z ENDP ; std::_Construct<std::pair<float,float>,std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z _TEXT SEGMENT __First$ = 8 ; size = 4 ___formal$ = 12 ; size = 1 ___formal$ = 16 ; size = 1 ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; __Last$ = edx ; __Dest$ = eax ; File d:\c++\visual91\vc\include\memory ; Line 47 mov ecx, DWORD PTR __First$[esp-4] ; Line 53 cmp ecx, edx je SHORT $LN4@Uninit_cop push esi npad 7 $LL6@Uninit_cop: ; Line 54 test eax, eax je SHORT $LN5@Uninit_cop mov esi, DWORD PTR [ecx] mov DWORD PTR [eax], esi mov esi, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], esi $LN5@Uninit_cop: add ecx, 8 add eax, 8 cmp ecx, edx jne SHORT $LL6@Uninit_cop pop esi $LN4@Uninit_cop: ; Line 61 ret 0 ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z _TEXT SEGMENT $T43117 = -4 ; size = 1 __Cat$43122 = 8 ; size = 1 __Last$ = 8 ; size = 4 __Dest$ = 12 ; size = 4 ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z PROC ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; __First$ = edx ; Line 101 push ecx ; Line 103 mov ecx, DWORD PTR __Cat$43122[esp] mov BYTE PTR $T43117[esp+4], 0 mov eax, DWORD PTR $T43117[esp+4] push eax mov eax, DWORD PTR __Dest$[esp+4] push ecx push edx mov edx, DWORD PTR __Last$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 104 add esp, 16 ; 00000010H ret 0 ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z ENDP ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z _TEXT SEGMENT $T43173 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43178 = 12 ; size = 1 _where$ = 12 ; size = 4 ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1>, COMDAT ; _begin$ = edx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 201 push ecx ; Line 204 mov ecx, DWORD PTR __Cat$43178[esp] mov BYTE PTR $T43173[esp+4], 0 mov eax, DWORD PTR $T43173[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 205 add esp, 16 ; 00000010H ret 0 ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z _TEXT SEGMENT $T43247 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43251 = 12 ; size = 1 _where$ = 12 ; size = 4 ___formal$ = 16 ; size = 1 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *>, COMDAT ; _begin$ = edx ; Line 189 push ecx ; Line 191 mov ecx, DWORD PTR __Cat$43251[esp] mov BYTE PTR $T43247[esp+4], 0 mov eax, DWORD PTR $T43247[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 192 add esp, 16 ; 00000010H ret 0 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z _TEXT SEGMENT $T43341 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43345 = 12 ; size = 1 _where$ = 12 ; size = 4 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *>, COMDAT ; _begin$ = edx ; Line 214 push ecx ; Line 217 mov ecx, DWORD PTR __Cat$43345[esp] mov BYTE PTR $T43341[esp+4], 0 mov eax, DWORD PTR $T43341[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 218 add esp, 16 ; 00000010H ret 0 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> _TEXT ENDS EXTRN __CxxThrowException@8:PROC ; Function compile flags: /Ogtpy ; COMDAT ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z _TEXT SEGMENT $T43366 = -16 ; size = 4 $T43358 = -12 ; size = 12 ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z PROC ; std::_Allocate<std::pair<float,float> >, COMDAT ; __Count$ = ecx ; File d:\c++\visual91\vc\include\xmemory ; Line 39 or eax, -1 xor edx, edx div ecx sub esp, 16 ; 00000010H cmp eax, 8 jae SHORT $LN1@Allocate ; Line 40 lea eax, DWORD PTR $T43366[esp+16] push eax lea ecx, DWORD PTR $T43358[esp+20] mov DWORD PTR $T43366[esp+20], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z push OFFSET __TI2?AVbad_alloc@std@@ lea ecx, DWORD PTR $T43358[esp+20] push ecx mov DWORD PTR $T43358[esp+24], OFFSET ??_7bad_alloc@std@@6B@ call __CxxThrowException@8 $LN1@Allocate: ; Line 43 lea edx, DWORD PTR [ecx*8] push edx call ??2@YAPAXI@Z ; operator new add esp, 4 ; Line 44 add esp, 16 ; 00000010H ret 0 $LN12@Allocate: ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z ENDP ; std::_Allocate<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z _TEXT SEGMENT ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor', COMDAT ; _this$ = esi mov eax, DWORD PTR [esi+2052] test eax, eax je SHORT $LN17@scalar cmp DWORD PTR [esi+2048], 256 ; 00000100H jbe SHORT $LN17@scalar push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN17@scalar: mov eax, esi ret 0 ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor' ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z _TEXT SEGMENT $T43420 = -16 ; size = 4 $T43426 = -12 ; size = 12 ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z PROC ; std::allocator<std::pair<float,float> >::allocate, COMDAT ; __Count$ = ecx ; Line 144 sub esp, 16 ; 00000010H ; Line 145 test ecx, ecx ja SHORT $LN5@allocate xor ecx, ecx $LN3@allocate: lea edx, DWORD PTR [ecx*8] push edx call ??2@YAPAXI@Z ; operator new add esp, 4 ; Line 146 add esp, 16 ; 00000010H ret 0 ; Line 145 $LN5@allocate: or eax, -1 xor edx, edx div ecx cmp eax, 8 jae SHORT $LN3@allocate lea eax, DWORD PTR $T43420[esp+16] push eax lea ecx, DWORD PTR $T43426[esp+20] mov DWORD PTR $T43420[esp+20], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z push OFFSET __TI2?AVbad_alloc@std@@ lea ecx, DWORD PTR $T43426[esp+20] push ecx mov DWORD PTR $T43426[esp+24], OFFSET ??_7bad_alloc@std@@6B@ call __CxxThrowException@8 $LN11@allocate: int 3 ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ENDP ; std::allocator<std::pair<float,float> >::allocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z _TEXT SEGMENT ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back, COMDAT ; _this$ = eax ; _x$ = edx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 832 mov ecx, DWORD PTR [eax+2056] push esi mov esi, DWORD PTR [eax+2052] lea ecx, DWORD PTR [esi+ecx*8] test ecx, ecx je SHORT $LN7@unchecked_ mov esi, DWORD PTR [edx] mov DWORD PTR [ecx], esi mov edx, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], edx $LN7@unchecked_: ; Line 833 inc DWORD PTR [eax+2056] pop esi ; Line 834 ret 0 ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z _TEXT SEGMENT _this$ = 8 ; size = 4 ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate, COMDAT ; _capacity$ = ecx ; Line 175 cmp ecx, 256 ; 00000100H jbe SHORT $LN2@allocate@2 ; Line 176 call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate ; Line 179 ret 4 $LN2@allocate@2: ; Line 178 mov eax, DWORD PTR _this$[esp-4] ; Line 179 ret 4 ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z _TEXT SEGMENT ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >, COMDAT ; _this$ = esi ; Line 582 mov ecx, 2001 ; 000007d1H mov DWORD PTR [esi+2048], ecx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov DWORD PTR [esi+2052], eax mov DWORD PTR [esi+2056], 0 ; Line 584 mov eax, esi ret 0 ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 ; size = 4 ??_Gbad_alloc@std@@UAEPAXI@Z PROC ; std::bad_alloc::`scalar deleting destructor', COMDAT ; _this$ = ecx push esi mov esi, ecx mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ call DWORD PTR __imp_??1exception@std@@UAE@XZ test BYTE PTR ___flags$[esp], 1 je SHORT $LN6@scalar@2 push esi call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN6@scalar@2: mov eax, esi pop esi ret 4 ??_Gbad_alloc@std@@UAEPAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z _TEXT SEGMENT $T43663 = -4 ; size = 1 __Cat$43666 = -4 ; size = 1 ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer, COMDAT ; _this$ = edi ; _new_capacity$ = ecx ; Line 307 push ecx push esi ; Line 308 cmp ecx, 256 ; 00000100H jbe SHORT $LN4@move_to_ne call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov esi, eax jmp SHORT $LN3@move_to_ne $LN4@move_to_ne: mov esi, edi $LN3@move_to_ne: ; Line 309 mov eax, DWORD PTR [edi+2052] mov BYTE PTR $T43663[esp+8], 0 mov ecx, DWORD PTR $T43663[esp+8] mov edx, DWORD PTR __Cat$43666[esp+8] push ecx mov ecx, DWORD PTR [edi+2056] push edx lea edx, DWORD PTR [eax+ecx*8] push eax mov eax, esi call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> add esp, 12 ; 0000000cH ; Line 310 mov eax, esi pop esi ; Line 311 pop ecx ret 0 ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z _TEXT SEGMENT $T43867 = 8 ; size = 1 __Cat$43870 = 8 ; size = 1 _new_capacity$ = 8 ; size = 4 ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl, COMDAT ; _this$ = esi ; Line 314 push ebx mov ebx, DWORD PTR _new_capacity$[esp] push edi ; Line 316 cmp ebx, 256 ; 00000100H jbe SHORT $LN6@reserve_im mov ecx, ebx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov edi, eax jmp SHORT $LN5@reserve_im $LN6@reserve_im: mov edi, esi $LN5@reserve_im: mov eax, DWORD PTR [esi+2052] mov BYTE PTR $T43867[esp+4], 0 mov ecx, DWORD PTR $T43867[esp+4] mov edx, DWORD PTR __Cat$43870[esp+4] push ecx mov ecx, DWORD PTR [esi+2056] push edx lea edx, DWORD PTR [eax+ecx*8] push eax mov eax, edi call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 317 mov eax, DWORD PTR [esi+2052] add esp, 12 ; 0000000cH test eax, eax je SHORT $LN55@reserve_im cmp DWORD PTR [esi+2048], 256 ; 00000100H jbe SHORT $LN55@reserve_im push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN55@reserve_im: ; Line 318 mov DWORD PTR [esi+2052], edi pop edi ; Line 319 mov DWORD PTR [esi+2048], ebx pop ebx ; Line 321 ret 4 ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z _TEXT SEGMENT $T43969 = -8 ; size = 4 _new_capacity$43960 = -4 ; size = 4 ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve, COMDAT ; _this$ = ecx ; _n$ = eax ; Line 856 sub esp, 8 push esi mov esi, ecx ; Line 859 mov ecx, DWORD PTR [esi+2048] cmp eax, ecx jbe SHORT $LN2@reserve ; Line 862 add ecx, ecx add ecx, ecx mov DWORD PTR $T43969[esp+12], eax cmp ecx, eax mov DWORD PTR _new_capacity$43960[esp+12], ecx lea eax, DWORD PTR $T43969[esp+12] jb SHORT $LN11@reserve lea eax, DWORD PTR _new_capacity$43960[esp+12] $LN11@reserve: mov eax, DWORD PTR [eax] push eax call ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl $LN2@reserve: pop esi ; Line 864 add esp, 8 ret 0 ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z _TEXT SEGMENT $T44011 = -8 ; size = 4 _new_capacity$44017 = -4 ; size = 4 ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back, COMDAT ; _this$ = eax ; _x$ = edi ; Line 900 sub esp, 8 push esi mov esi, eax ; Line 903 mov eax, DWORD PTR [esi+2056] mov ecx, DWORD PTR [esi+2048] cmp eax, ecx ; Line 907 jne SHORT $LN30@push_back ; Line 909 inc eax cmp eax, ecx jbe SHORT $LN12@push_back add ecx, ecx add ecx, ecx mov DWORD PTR $T44011[esp+12], eax cmp ecx, eax mov DWORD PTR _new_capacity$44017[esp+12], ecx lea eax, DWORD PTR $T44011[esp+12] jb SHORT $LN21@push_back lea eax, DWORD PTR _new_capacity$44017[esp+12] $LN21@push_back: mov edx, DWORD PTR [eax] push edx call ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl $LN12@push_back: ; Line 910 mov eax, DWORD PTR [esi+2056] $LN30@push_back: mov ecx, DWORD PTR [esi+2052] lea eax, DWORD PTR [ecx+eax*8] test eax, eax je SHORT $LN24@push_back mov edx, DWORD PTR [edi] mov DWORD PTR [eax], edx mov ecx, DWORD PTR [edi+4] mov DWORD PTR [eax+4], ecx $LN24@push_back: inc DWORD PTR [esi+2056] pop esi ; Line 912 add esp, 8 ret 0 ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXABU?$pair@MM@std@@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back _TEXT ENDS PUBLIC __real@422c0000 PUBLIC __real@42280000 PUBLIC __$ArrayPad$ PUBLIC _main EXTRN ___security_cookie:DWORD EXTRN ___CxxFrameHandler3:PROC ; COMDAT __real@422c0000 ; File d:\c++\visual91\vc\include\xmemory CONST SEGMENT __real@422c0000 DD 0422c0000r ; 43 CONST ENDS ; COMDAT __real@42280000 CONST SEGMENT __real@42280000 DD 042280000r ; 42 CONST ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$_main DD 0ffffffffH DD FLAT:__unwindfunclet$_main$0 __ehfuncinfo$_main DD 019930522H DD 01H DD FLAT:__unwindtable$_main DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 01H ; Function compile flags: /Ogtpy xdata$x ENDS ; COMDAT _main _TEXT SEGMENT $T44047 = -2084 ; size = 8 _buf$ = -2076 ; size = 2060 __$ArrayPad$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _main PROC ; COMDAT ; File d:\test\pass_by_ref.cpp ; Line 5 push -1 push __ehhandler$_main mov eax, DWORD PTR fs:0 push eax sub esp, 2072 ; 00000818H mov eax, DWORD PTR ___security_cookie xor eax, esp mov DWORD PTR __$ArrayPad$[esp+2084], eax push esi mov eax, DWORD PTR ___security_cookie xor eax, esp push eax lea eax, DWORD PTR __$EHRec$[esp+2092] mov DWORD PTR fs:0, eax ; Line 7 mov ecx, 2001 ; 000007d1H mov DWORD PTR _buf$[esp+4140], ecx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov DWORD PTR _buf$[esp+4144], eax mov DWORD PTR _buf$[esp+4148], 0 mov DWORD PTR __$EHRec$[esp+2100], 0 ; Line 9 cmp DWORD PTR _buf$[esp+4140], 0 movss xmm0, DWORD PTR __real@42280000 movss DWORD PTR $T44047[esp+2092], xmm0 movss xmm0, DWORD PTR __real@422c0000 movss DWORD PTR $T44047[esp+2096], xmm0 je SHORT $LN29@main test eax, eax je SHORT $LN51@main mov ecx, DWORD PTR $T44047[esp+2092] mov edx, DWORD PTR $T44047[esp+2096] mov DWORD PTR [eax], ecx mov DWORD PTR [eax+4], edx jmp SHORT $LN51@main $LN29@main: push 1 lea esi, DWORD PTR _buf$[esp+2096] call ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl mov eax, DWORD PTR _buf$[esp+4144] mov ecx, DWORD PTR _buf$[esp+4148] lea eax, DWORD PTR [eax+ecx*8] test eax, eax je SHORT $LN51@main mov edx, DWORD PTR $T44047[esp+2092] mov ecx, DWORD PTR $T44047[esp+2096] mov DWORD PTR [eax], edx mov DWORD PTR [eax+4], ecx $LN51@main: ; Line 10 mov eax, DWORD PTR _buf$[esp+4144] inc DWORD PTR _buf$[esp+4148] test eax, eax je SHORT $LN68@main cmp DWORD PTR _buf$[esp+4140], 256 ; 00000100H jbe SHORT $LN68@main push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN68@main: xor eax, eax mov ecx, DWORD PTR __$EHRec$[esp+2092] mov DWORD PTR fs:0, ecx pop ecx pop esi mov ecx, DWORD PTR __$ArrayPad$[esp+2084] xor ecx, esp call @__security_check_cookie@4 add esp, 2084 ; 00000824H ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$_main$0: lea ecx, DWORD PTR _buf$[ebp] jmp ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > __ehhandler$_main: mov edx, DWORD PTR [esp+8] lea eax, DWORD PTR [edx-2076] mov ecx, DWORD PTR [edx-2080] xor ecx, eax call @__security_check_cookie@4 add eax, 4 mov ecx, DWORD PTR [edx-4] xor ecx, eax call @__security_check_cookie@4 mov eax, OFFSET __ehfuncinfo$_main jmp ___CxxFrameHandler3 text$x ENDS _main ENDP END ; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.30729.01 TITLE d:\test\pass_by_ref.cpp .686P .XMM include listing.inc .model flat INCLUDELIB OLDNAMES PUBLIC ??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`RTTI Complete Object Locator' PUBLIC ??_R3bad_alloc@std@@8 ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_R3exception@std@@8 ; std::exception::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2exception@std@@8 ; std::exception::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ ; `string' PUBLIC ??0?$pair@MM@std@@QAE@ABM0@Z ; std::pair<float,float>::pair<float,float> PUBLIC ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> > PUBLIC ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ; boost::aligned_storage<2048,4>::aligned_storage<2048,4> PUBLIC ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type PUBLIC ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > PUBLIC ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back PUBLIC ??0bad_alloc@std@@QAE@PBD@Z ; std::bad_alloc::bad_alloc PUBLIC ??1bad_alloc@std@@UAE@XZ ; std::bad_alloc::~bad_alloc PUBLIC ??_Gbad_alloc@std@@UAEPAXI@Z ; std::bad_alloc::`scalar deleting destructor' PUBLIC ??0bad_alloc@std@@QAE@ABV01@@Z ; std::bad_alloc::bad_alloc PUBLIC ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z ; std::_Allocate<std::pair<float,float> > PUBLIC ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate PUBLIC ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address PUBLIC ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ ; boost::aligned_storage<2048,4>::address PUBLIC ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address PUBLIC ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate PUBLIC ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin PUBLIC ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end PUBLIC ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ; std::_Checked_base<std::pair<float,float> *> PUBLIC ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z ; std::_Checked_base<std::pair<float,float> *> PUBLIC ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??2@YAPAXIPAX@Z ; operator new PUBLIC ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z ; std::_Construct<std::pair<float,float>,std::pair<float,float> > PUBLIC ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z ; std::_Destroy<std::pair<float,float> > PUBLIC ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *> PUBLIC ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1> PUBLIC ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> PUBLIC ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> PUBLIC ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer PUBLIC ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::deallocate PUBLIC ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator PUBLIC ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate PUBLIC ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy PUBLIC ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4> PUBLIC ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type PUBLIC ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > PUBLIC ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor' PUBLIC ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl PUBLIC ??$max@I@std@@YAABIABI0@Z ; std::max<unsigned int> PUBLIC ??$new_capacity@I@default_grow_policy@boost@@SAII@Z ; boost::default_grow_policy::new_capacity<unsigned int> PUBLIC ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl PUBLIC ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve PUBLIC ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back PUBLIC ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc `RTTI Type Descriptor' PUBLIC ??_R0?AVexception@std@@@8 ; std::exception `RTTI Type Descriptor' PUBLIC __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 PUBLIC __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 PUBLIC __CTA2?AVbad_alloc@std@@ PUBLIC __TI2?AVbad_alloc@std@@ PUBLIC ??_7bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' EXTRN ?what@exception@std@@UBEPBDXZ:PROC ; std::exception::what EXTRN ??0exception@std@@QAE@ABV01@@Z:PROC ; std::exception::exception EXTRN @__security_check_cookie@4:PROC EXTRN ??2@YAPAXI@Z:PROC ; operator new EXTRN __imp_??0exception@std@@QAE@ABQBD@Z:PROC EXTRN __imp_?what@exception@std@@UBEPBDXZ:PROC EXTRN __imp_??1exception@std@@UAE@XZ:PROC EXTRN ??_Ebad_alloc@std@@UAEPAXI@Z:PROC ; std::bad_alloc::`vector deleting destructor' EXTRN __imp_??0exception@std@@QAE@ABV01@@Z:PROC EXTRN ??_7type_info@@6B@:QWORD ; type_info::`vftable' EXTRN ??3@YAXPAX@Z:PROC ; operator delete ; COMDAT ??_7bad_alloc@std@@6B@ CONST SEGMENT ??_7bad_alloc@std@@6B@ DD FLAT:??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' DD FLAT:??_Ebad_alloc@std@@UAEPAXI@Z DD FLAT:?what@exception@std@@UBEPBDXZ CONST ENDS ; COMDAT ??_R4bad_alloc@std@@6B@ rdata$r SEGMENT ??_R4bad_alloc@std@@6B@ DD 00H ; std::bad_alloc::`RTTI Complete Object Locator' DD 00H DD 00H DD FLAT:??_R0?AVbad_alloc@std@@@8 DD FLAT:??_R3bad_alloc@std@@8 rdata$r ENDS ; COMDAT ??_R3bad_alloc@std@@8 rdata$r SEGMENT ??_R3bad_alloc@std@@8 DD 00H ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' DD 00H DD 02H DD FLAT:??_R2bad_alloc@std@@8 rdata$r ENDS ; COMDAT ??_R2bad_alloc@std@@8 rdata$r SEGMENT ??_R2bad_alloc@std@@8 DD FLAT:??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' DD FLAT:??_R1A@?0A@EA@exception@std@@8 rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@exception@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@exception@std@@8 DD FLAT:??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 00H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3exception@std@@8 rdata$r ENDS ; COMDAT ??_R3exception@std@@8 rdata$r SEGMENT ??_R3exception@std@@8 DD 00H ; std::exception::`RTTI Class Hierarchy Descriptor' DD 00H DD 01H DD FLAT:??_R2exception@std@@8 rdata$r ENDS ; COMDAT ??_R2exception@std@@8 rdata$r SEGMENT ??_R2exception@std@@8 DD FLAT:??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array' rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8 rdata$r SEGMENT ??_R1A@?0A@EA@bad_alloc@std@@8 DD FLAT:??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 01H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3bad_alloc@std@@8 rdata$r ENDS ; COMDAT __TI2?AVbad_alloc@std@@ xdata$x SEGMENT __TI2?AVbad_alloc@std@@ DD 00H DD FLAT:??1bad_alloc@std@@UAE@XZ DD 00H DD FLAT:__CTA2?AVbad_alloc@std@@ xdata$x ENDS ; COMDAT __CTA2?AVbad_alloc@std@@ xdata$x SEGMENT __CTA2?AVbad_alloc@std@@ DD 02H DD FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 xdata$x ENDS ; COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 xdata$x SEGMENT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H DD FLAT:??_R0?AVexception@std@@@8 DD 00H DD 0ffffffffH ORG $+4 DD 0cH DD FLAT:??0exception@std@@QAE@ABV01@@Z xdata$x ENDS ; COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 xdata$x SEGMENT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H DD FLAT:??_R0?AVbad_alloc@std@@@8 DD 00H DD 0ffffffffH ORG $+4 DD 0cH DD FLAT:??0bad_alloc@std@@QAE@ABV01@@Z xdata$x ENDS ; COMDAT ??_R0?AVexception@std@@@8 _DATA SEGMENT ??_R0?AVexception@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::exception `RTTI Type Descriptor' DD 00H DB '.?AVexception@std@@', 00H _DATA ENDS ; COMDAT ??_R0?AVbad_alloc@std@@@8 _DATA SEGMENT ??_R0?AVbad_alloc@std@@@8 DD FLAT:??_7type_info@@6B@ ; std::bad_alloc `RTTI Type Descriptor' DD 00H DB '.?AVbad_alloc@std@@', 00H __bad_alloc_Message DD FLAT:??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ ; COMDAT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ CONST SEGMENT ??_C@_0P@GHFPNOJB@bad?5allocation?$AA@ DB 'bad allocation', 00H ; `string' ; Function compile flags: /Ogtpy CONST ENDS ; COMDAT ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z _TEXT SEGMENT ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z PROC ; std::_Destroy<std::pair<float,float> >, COMDAT ; File d:\c++\visual91\vc\include\xmemory ; Line 60 ret 0 ??$_Destroy@U?$pair@MM@std@@@std@@YAXPAU?$pair@MM@0@@Z ENDP ; std::_Destroy<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 1 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z PROC ; std::_Checked_base<std::pair<float,float> *>, COMDAT ; __It$ = eax ; File d:\c++\visual91\vc\include\xutility ; Line 1147 mov eax, DWORD PTR [eax] ; Line 1148 ret 0 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@U_Unchanged_checked_iterator_base_type_tag@0@@Z ENDP ; std::_Checked_base<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z _TEXT SEGMENT __Cat$ = -1 ; size = 1 ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z PROC ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; Line 1509 push ecx ; Line 1511 mov al, BYTE PTR __Cat$[esp+4] ; Line 1512 pop ecx ret 0 ??$_Ptr_cat@PAU?$pair@MM@std@@PAU12@@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPAU?$pair@MM@0@0@Z ENDP ; std::_Ptr_cat<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z _TEXT SEGMENT ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z PROC ; std::_Checked_base<std::pair<float,float> *>, COMDAT ; __It$ = eax ; Line 1165 mov eax, DWORD PTR [eax] ; Line 1166 ret 0 ??$_Checked_base@PAU?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@AAPAU10@@Z ENDP ; std::_Checked_base<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z _TEXT SEGMENT ___that$ = 8 ; size = 4 ??0bad_alloc@std@@QAE@ABV01@@Z PROC ; std::bad_alloc::bad_alloc, COMDAT ; _this$ = ecx mov eax, DWORD PTR ___that$[esp-4] push esi push eax mov esi, ecx call DWORD PTR __imp_??0exception@std@@QAE@ABV01@@Z mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ mov eax, esi pop esi ret 4 ??0bad_alloc@std@@QAE@ABV01@@Z ENDP ; std::bad_alloc::bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$new_capacity@I@default_grow_policy@boost@@SAII@Z _TEXT SEGMENT ??$new_capacity@I@default_grow_policy@boost@@SAII@Z PROC ; boost::default_grow_policy::new_capacity<unsigned int>, COMDAT ; _old_capacity$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 96 add eax, eax add eax, eax ; Line 97 ret 0 ??$new_capacity@I@default_grow_policy@boost@@SAII@Z ENDP ; boost::default_grow_policy::new_capacity<unsigned int> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$max@I@std@@YAABIABI0@Z _TEXT SEGMENT ??$max@I@std@@YAABIABI0@Z PROC ; std::max<unsigned int>, COMDAT ; __Left$ = ecx ; __Right$ = eax ; File d:\c++\visual91\vc\include\xutility ; Line 3384 mov edx, DWORD PTR [ecx] cmp edx, DWORD PTR [eax] jb SHORT $LN4@max mov eax, ecx $LN4@max: ; Line 3385 ret 0 ??$max@I@std@@YAABIABI0@Z ENDP ; std::max<unsigned int> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ _TEXT SEGMENT ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ PROC ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 57 ret 0 ?address@?$aligned_storage_imp@$0IAA@$03@aligned_storage@detail@boost@@QBEPAXXZ ENDP ; boost::detail::aligned_storage::aligned_storage_imp<2048,4>::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ _TEXT SEGMENT ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 731 mov ecx, DWORD PTR [eax+2056] mov edx, DWORD PTR [eax+2052] lea eax, DWORD PTR [edx+ecx*8] ; Line 732 ret 0 ?end@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::end ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ _TEXT SEGMENT ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin, COMDAT ; _this$ = eax ; Line 721 mov eax, DWORD PTR [eax+2052] ; Line 722 ret 0 ?begin@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAU?$pair@MM@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::begin ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ _TEXT SEGMENT ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ PROC ; boost::aligned_storage<2048,4>::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 133 ret 0 ?address@?$aligned_storage@$0IAA@$03@boost@@QAEPAXXZ ENDP ; boost::aligned_storage<2048,4>::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z _TEXT SEGMENT ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z PROC ; std::allocator<std::pair<float,float> >::deallocate, COMDAT ; __Ptr$ = eax ; File d:\c++\visual91\vc\include\xmemory ; Line 140 push eax call ??3@YAXPAX@Z ; operator delete pop ecx ; Line 141 ret 0 ?deallocate@?$allocator@U?$pair@MM@std@@@std@@QAEXPAU?$pair@MM@2@I@Z ENDP ; std::allocator<std::pair<float,float> >::deallocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ _TEXT SEGMENT ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ PROC ; boost::aligned_storage<2048,4>::aligned_storage<2048,4>, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 122 ret 0 ??0?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ENDP ; boost::aligned_storage<2048,4>::aligned_storage<2048,4> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ _TEXT SEGMENT ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 1197 ret 0 ?address@members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QBEPAXXZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::address ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ _TEXT SEGMENT ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator, COMDAT ; _this$ = eax ; Line 711 ret 0 ?get_allocator@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEAAV?$allocator@U?$pair@MM@std@@@std@@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::get_allocator ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z _TEXT SEGMENT _new_capacity$ = -4 ; size = 4 _n$ = 8 ; size = 4 ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl, COMDAT ; _this$ = eax ; Line 324 push ecx ; Line 326 mov eax, DWORD PTR [eax+2048] add eax, eax add eax, eax ; Line 328 cmp eax, DWORD PTR _n$[esp] mov DWORD PTR _new_capacity$[esp+4], eax lea eax, DWORD PTR _n$[esp] jb SHORT $LN9@new_capaci lea eax, DWORD PTR _new_capacity$[esp+4] $LN9@new_capaci: mov eax, DWORD PTR [eax] ; Line 329 pop ecx ret 4 ?new_capacity_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEII@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::new_capacity_impl ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z _TEXT SEGMENT _capacity$ = 8 ; size = 4 ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate, COMDAT ; _where$ = eax ; Line 183 cmp DWORD PTR _capacity$[esp-4], 256 ; 00000100H jbe SHORT $LN6@deallocate ; Line 185 push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN6@deallocate: ; Line 186 ret 4 ?deallocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXPAU?$pair@MM@std@@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::deallocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ _TEXT SEGMENT ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ PROC ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4>, COMDAT ; File d:\boost\trunk\boost\aligned_storage.hpp ; Line 126 ret 0 ??1?$aligned_storage@$0IAA@$03@boost@@QAE@XZ ENDP ; boost::aligned_storage<2048,4>::~aligned_storage<2048,4> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z _TEXT SEGMENT ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type, COMDAT ; _this$ = eax ; _capacity$ = ecx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 1194 mov DWORD PTR [eax+2048], ecx ret 0 ??0members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::members_type ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ _TEXT SEGMENT ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ PROC ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> >, COMDAT ; _this$ = eax ; File d:\c++\visual91\vc\include\xmemory ; Line 121 ret 0 ??0?$allocator@U?$pair@MM@std@@@std@@QAE@XZ ENDP ; std::allocator<std::pair<float,float> >::allocator<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z _TEXT SEGMENT ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 290 cmp DWORD PTR [eax+2048], 256 ; 00000100H jbe SHORT $LN8@auto_buffe mov eax, DWORD PTR [eax+2052] push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN8@auto_buffe: ; Line 291 ret 0 ?auto_buffer_destroy@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXABU?$integral_constant@_N$00@2@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer_destroy ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ _TEXT SEGMENT ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type, COMDAT ret 0 ??1members_type@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::members_type::~members_type _TEXT ENDS EXTRN __fltused:DWORD ; Function compile flags: /Ogtpy ; COMDAT ??0?$pair@MM@std@@QAE@ABM0@Z _TEXT SEGMENT __Val2$ = 8 ; size = 4 ??0?$pair@MM@std@@QAE@ABM0@Z PROC ; std::pair<float,float>::pair<float,float>, COMDAT ; _this$ = eax ; __Val1$ = ecx ; File d:\c++\visual91\vc\include\utility ; Line 50 fld DWORD PTR [ecx] mov edx, DWORD PTR __Val2$[esp-4] fstp DWORD PTR [eax] fld DWORD PTR [edx] fstp DWORD PTR [eax+4] ; Line 51 ret 4 ??0?$pair@MM@std@@QAE@ABM0@Z ENDP ; std::pair<float,float>::pair<float,float> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ _TEXT SEGMENT ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >, COMDAT ; _this$ = ecx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 665 mov eax, DWORD PTR [ecx+2052] test eax, eax je SHORT $LN11@auto_buffe@2 ; Line 668 cmp DWORD PTR [ecx+2048], 256 ; 00000100H jbe SHORT $LN11@auto_buffe@2 push eax call ??3@YAXPAX@Z ; operator delete pop ecx $LN11@auto_buffe@2: ; Line 669 ret 0 ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??2@YAPAXIPAX@Z _TEXT SEGMENT ??2@YAPAXIPAX@Z PROC ; operator new, COMDAT ; __Where$ = eax ; File d:\c++\visual91\vc\include\new ; Line 60 ret 0 ??2@YAPAXIPAX@Z ENDP ; operator new ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??1bad_alloc@std@@UAE@XZ _TEXT SEGMENT ??1bad_alloc@std@@UAE@XZ PROC ; std::bad_alloc::~bad_alloc, COMDAT ; _this$ = ecx ; File d:\c++\visual91\vc\include\exception ; Line 380 mov DWORD PTR [ecx], OFFSET ??_7bad_alloc@std@@6B@ ; Line 381 jmp DWORD PTR __imp_??1exception@std@@UAE@XZ ??1bad_alloc@std@@UAE@XZ ENDP ; std::bad_alloc::~bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0bad_alloc@std@@QAE@PBD@Z _TEXT SEGMENT __Message$ = -4 ; size = 4 ??0bad_alloc@std@@QAE@PBD@Z PROC ; std::bad_alloc::bad_alloc, COMDAT ; _this$ = esi ; Line 371 push ecx lea eax, DWORD PTR __Message$[esp+4] push eax mov ecx, esi mov DWORD PTR __Message$[esp+8], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ ; Line 372 mov eax, esi pop ecx ret 0 ??0bad_alloc@std@@QAE@PBD@Z ENDP ; std::bad_alloc::bad_alloc ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z _TEXT SEGMENT ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z PROC ; std::_Construct<std::pair<float,float>,std::pair<float,float> >, COMDAT ; __Ptr$ = eax ; __Val$ = ecx ; File d:\c++\visual91\vc\include\xmemory ; Line 52 test eax, eax je SHORT $LN3@Construct mov edx, DWORD PTR [ecx] mov DWORD PTR [eax], edx mov ecx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], ecx $LN3@Construct: ; Line 53 ret 0 ??$_Construct@U?$pair@MM@std@@U12@@std@@YAXPAU?$pair@MM@0@ABU10@@Z ENDP ; std::_Construct<std::pair<float,float>,std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z _TEXT SEGMENT __First$ = 8 ; size = 4 ___formal$ = 12 ; size = 1 ___formal$ = 16 ; size = 1 ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; __Last$ = edx ; __Dest$ = eax ; File d:\c++\visual91\vc\include\memory ; Line 47 mov ecx, DWORD PTR __First$[esp-4] ; Line 53 cmp ecx, edx je SHORT $LN4@Uninit_cop push esi npad 7 $LL6@Uninit_cop: ; Line 54 test eax, eax je SHORT $LN5@Uninit_cop mov esi, DWORD PTR [ecx] mov DWORD PTR [eax], esi mov esi, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], esi $LN5@Uninit_cop: add ecx, 8 add eax, 8 cmp ecx, edx jne SHORT $LL6@Uninit_cop pop esi $LN4@Uninit_cop: ; Line 61 ret 0 ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z _TEXT SEGMENT $T43117 = -4 ; size = 1 __Cat$43122 = 8 ; size = 1 __Last$ = 8 ; size = 4 __Dest$ = 12 ; size = 4 ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z PROC ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *>, COMDAT ; __First$ = edx ; Line 101 push ecx ; Line 103 mov ecx, DWORD PTR __Cat$43122[esp] mov BYTE PTR $T43117[esp+4], 0 mov eax, DWORD PTR $T43117[esp+4] push eax mov eax, DWORD PTR __Dest$[esp+4] push ecx push edx mov edx, DWORD PTR __Last$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 104 add esp, 16 ; 00000010H ret 0 ??$uninitialized_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00@Z ENDP ; std::uninitialized_copy<std::pair<float,float> *,std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z _TEXT SEGMENT $T43173 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43178 = 12 ; size = 1 _where$ = 12 ; size = 4 ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1>, COMDAT ; _begin$ = edx ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 201 push ecx ; Line 204 mov ecx, DWORD PTR __Cat$43178[esp] mov BYTE PTR $T43173[esp+4], 0 mov eax, DWORD PTR $T43173[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 205 add esp, 16 ; 00000010H ret 0 ??$copy_rai@PAU?$pair@MM@std@@$00@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00ABU?$integral_constant@_N$00@1@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_rai<std::pair<float,float> *,1> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z _TEXT SEGMENT $T43247 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43251 = 12 ; size = 1 _where$ = 12 ; size = 4 ___formal$ = 16 ; size = 1 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *>, COMDAT ; _begin$ = edx ; Line 189 push ecx ; Line 191 mov ecx, DWORD PTR __Cat$43251[esp] mov BYTE PTR $T43247[esp+4], 0 mov eax, DWORD PTR $T43247[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 192 add esp, 16 ; 00000010H ret 0 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00Urandom_access_iterator_tag@3@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z _TEXT SEGMENT $T43341 = -4 ; size = 1 _end$ = 8 ; size = 4 __Cat$43345 = 12 ; size = 1 _where$ = 12 ; size = 4 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *>, COMDAT ; _begin$ = edx ; Line 214 push ecx ; Line 217 mov ecx, DWORD PTR __Cat$43345[esp] mov BYTE PTR $T43341[esp+4], 0 mov eax, DWORD PTR $T43341[esp+4] push eax mov eax, DWORD PTR _where$[esp+4] push ecx push edx mov edx, DWORD PTR _end$[esp+12] call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 218 add esp, 16 ; 00000010H ret 0 ??$copy_impl@PAU?$pair@MM@std@@@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@CAXPAU?$pair@MM@std@@00@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::copy_impl<std::pair<float,float> *> _TEXT ENDS EXTRN __CxxThrowException@8:PROC ; Function compile flags: /Ogtpy ; COMDAT ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z _TEXT SEGMENT $T43366 = -16 ; size = 4 $T43358 = -12 ; size = 12 ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z PROC ; std::_Allocate<std::pair<float,float> >, COMDAT ; __Count$ = ecx ; File d:\c++\visual91\vc\include\xmemory ; Line 39 or eax, -1 xor edx, edx div ecx sub esp, 16 ; 00000010H cmp eax, 8 jae SHORT $LN1@Allocate ; Line 40 lea eax, DWORD PTR $T43366[esp+16] push eax lea ecx, DWORD PTR $T43358[esp+20] mov DWORD PTR $T43366[esp+20], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z push OFFSET __TI2?AVbad_alloc@std@@ lea ecx, DWORD PTR $T43358[esp+20] push ecx mov DWORD PTR $T43358[esp+24], OFFSET ??_7bad_alloc@std@@6B@ call __CxxThrowException@8 $LN1@Allocate: ; Line 43 lea edx, DWORD PTR [ecx*8] push edx call ??2@YAPAXI@Z ; operator new add esp, 4 ; Line 44 add esp, 16 ; 00000010H ret 0 $LN12@Allocate: ??$_Allocate@U?$pair@MM@std@@@std@@YAPAU?$pair@MM@0@IPAU10@@Z ENDP ; std::_Allocate<std::pair<float,float> > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z _TEXT SEGMENT ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor', COMDAT ; _this$ = esi mov eax, DWORD PTR [esi+2052] test eax, eax je SHORT $LN17@scalar cmp DWORD PTR [esi+2048], 256 ; 00000100H jbe SHORT $LN17@scalar push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN17@scalar: mov eax, esi ret 0 ??_G?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEPAXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::`scalar deleting destructor' ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z _TEXT SEGMENT $T43420 = -16 ; size = 4 $T43426 = -12 ; size = 12 ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z PROC ; std::allocator<std::pair<float,float> >::allocate, COMDAT ; __Count$ = ecx ; Line 144 sub esp, 16 ; 00000010H ; Line 145 test ecx, ecx ja SHORT $LN5@allocate xor ecx, ecx $LN3@allocate: lea edx, DWORD PTR [ecx*8] push edx call ??2@YAPAXI@Z ; operator new add esp, 4 ; Line 146 add esp, 16 ; 00000010H ret 0 ; Line 145 $LN5@allocate: or eax, -1 xor edx, edx div ecx cmp eax, 8 jae SHORT $LN3@allocate lea eax, DWORD PTR $T43420[esp+16] push eax lea ecx, DWORD PTR $T43426[esp+20] mov DWORD PTR $T43420[esp+20], 0 call DWORD PTR __imp_??0exception@std@@QAE@ABQBD@Z push OFFSET __TI2?AVbad_alloc@std@@ lea ecx, DWORD PTR $T43426[esp+20] push ecx mov DWORD PTR $T43426[esp+24], OFFSET ??_7bad_alloc@std@@6B@ call __CxxThrowException@8 $LN11@allocate: int 3 ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ENDP ; std::allocator<std::pair<float,float> >::allocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z _TEXT SEGMENT _x$ = 8 ; size = 8 ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back, COMDAT ; _this$ = eax ; File d:\boost\trunk\boost\auto_buffer\auto_buffer.hpp ; Line 832 mov ecx, DWORD PTR [eax+2056] mov edx, DWORD PTR [eax+2052] lea ecx, DWORD PTR [edx+ecx*8] test ecx, ecx je SHORT $LN7@unchecked_ mov edx, DWORD PTR _x$[esp-4] mov DWORD PTR [ecx], edx mov edx, DWORD PTR _x$[esp] mov DWORD PTR [ecx+4], edx $LN7@unchecked_: ; Line 833 inc DWORD PTR [eax+2056] ; Line 834 ret 8 ?unchecked_push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::unchecked_push_back ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z _TEXT SEGMENT _this$ = 8 ; size = 4 ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate, COMDAT ; _capacity$ = ecx ; Line 175 cmp ecx, 256 ; 00000100H jbe SHORT $LN2@allocate@2 ; Line 176 call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate ; Line 179 ret 4 $LN2@allocate@2: ; Line 178 mov eax, DWORD PTR _this$[esp-4] ; Line 179 ret 4 ?allocate@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::allocate ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z _TEXT SEGMENT ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >, COMDAT ; _this$ = esi ; Line 582 mov ecx, 2001 ; 000007d1H mov DWORD PTR [esi+2048], ecx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov DWORD PTR [esi+2052], eax mov DWORD PTR [esi+2056], 0 ; Line 584 mov eax, esi ret 0 ??0?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@I@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 ; size = 4 ??_Gbad_alloc@std@@UAEPAXI@Z PROC ; std::bad_alloc::`scalar deleting destructor', COMDAT ; _this$ = ecx push esi mov esi, ecx mov DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@ call DWORD PTR __imp_??1exception@std@@UAE@XZ test BYTE PTR ___flags$[esp], 1 je SHORT $LN6@scalar@2 push esi call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN6@scalar@2: mov eax, esi pop esi ret 4 ??_Gbad_alloc@std@@UAEPAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z _TEXT SEGMENT $T43663 = -4 ; size = 1 __Cat$43666 = -4 ; size = 1 ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer, COMDAT ; _this$ = edi ; _new_capacity$ = ecx ; Line 307 push ecx push esi ; Line 308 cmp ecx, 256 ; 00000100H jbe SHORT $LN4@move_to_ne call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov esi, eax jmp SHORT $LN3@move_to_ne $LN4@move_to_ne: mov esi, edi $LN3@move_to_ne: ; Line 309 mov eax, DWORD PTR [edi+2052] mov BYTE PTR $T43663[esp+8], 0 mov ecx, DWORD PTR $T43663[esp+8] mov edx, DWORD PTR __Cat$43666[esp+8] push ecx mov ecx, DWORD PTR [edi+2056] push edx lea edx, DWORD PTR [eax+ecx*8] push eax mov eax, esi call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> add esp, 12 ; 0000000cH ; Line 310 mov eax, esi pop esi ; Line 311 pop ecx ret 0 ?move_to_new_buffer@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEPAU?$pair@MM@std@@IABU?$integral_constant@_N$00@2@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::move_to_new_buffer ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z _TEXT SEGMENT $T43867 = 8 ; size = 1 __Cat$43870 = 8 ; size = 1 _new_capacity$ = 8 ; size = 4 ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl, COMDAT ; _this$ = esi ; Line 314 push ebx mov ebx, DWORD PTR _new_capacity$[esp] push edi ; Line 316 cmp ebx, 256 ; 00000100H jbe SHORT $LN6@reserve_im mov ecx, ebx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov edi, eax jmp SHORT $LN5@reserve_im $LN6@reserve_im: mov edi, esi $LN5@reserve_im: mov eax, DWORD PTR [esi+2052] mov BYTE PTR $T43867[esp+4], 0 mov ecx, DWORD PTR $T43867[esp+4] mov edx, DWORD PTR __Cat$43870[esp+4] push ecx mov ecx, DWORD PTR [esi+2056] push edx lea edx, DWORD PTR [eax+ecx*8] push eax mov eax, edi call ??$_Uninit_copy@PAU?$pair@MM@std@@PAU12@@std@@YAPAU?$pair@MM@0@PAU10@00U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<std::pair<float,float> *,std::pair<float,float> *> ; Line 317 mov eax, DWORD PTR [esi+2052] add esp, 12 ; 0000000cH test eax, eax je SHORT $LN55@reserve_im cmp DWORD PTR [esi+2048], 256 ; 00000100H jbe SHORT $LN55@reserve_im push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN55@reserve_im: ; Line 318 mov DWORD PTR [esi+2052], edi pop edi ; Line 319 mov DWORD PTR [esi+2048], ebx pop ebx ; Line 321 ret 4 ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z _TEXT SEGMENT $T43969 = -8 ; size = 4 _new_capacity$43960 = -4 ; size = 4 ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve, COMDAT ; _this$ = ecx ; _n$ = eax ; Line 856 sub esp, 8 push esi mov esi, ecx ; Line 859 mov ecx, DWORD PTR [esi+2048] cmp eax, ecx jbe SHORT $LN2@reserve ; Line 862 add ecx, ecx add ecx, ecx mov DWORD PTR $T43969[esp+12], eax cmp ecx, eax mov DWORD PTR _new_capacity$43960[esp+12], ecx lea eax, DWORD PTR $T43969[esp+12] jb SHORT $LN11@reserve lea eax, DWORD PTR _new_capacity$43960[esp+12] $LN11@reserve: mov eax, DWORD PTR [eax] push eax call ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl $LN2@reserve: pop esi ; Line 864 add esp, 8 ret 0 ?reserve@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXI@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve ; Function compile flags: /Ogtpy _TEXT ENDS ; COMDAT ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z _TEXT SEGMENT $T44011 = -8 ; size = 4 _new_capacity$44017 = -4 ; size = 4 _x$ = 8 ; size = 8 ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z PROC ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back, COMDAT ; _this$ = eax ; Line 900 sub esp, 8 push esi mov esi, eax ; Line 903 mov eax, DWORD PTR [esi+2056] mov ecx, DWORD PTR [esi+2048] cmp eax, ecx ; Line 907 jne SHORT $LN30@push_back ; Line 909 inc eax cmp eax, ecx jbe SHORT $LN12@push_back add ecx, ecx add ecx, ecx mov DWORD PTR $T44011[esp+12], eax cmp ecx, eax mov DWORD PTR _new_capacity$44017[esp+12], ecx lea eax, DWORD PTR $T44011[esp+12] jb SHORT $LN21@push_back lea eax, DWORD PTR _new_capacity$44017[esp+12] $LN21@push_back: mov edx, DWORD PTR [eax] push edx call ?reserve_impl@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@AAEXI@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::reserve_impl $LN12@push_back: ; Line 910 mov eax, DWORD PTR [esi+2056] $LN30@push_back: mov ecx, DWORD PTR [esi+2052] lea eax, DWORD PTR [ecx+eax*8] test eax, eax je SHORT $LN24@push_back mov edx, DWORD PTR _x$[esp+8] mov DWORD PTR [eax], edx mov ecx, DWORD PTR _x$[esp+12] mov DWORD PTR [eax+4], ecx $LN24@push_back: inc DWORD PTR [esi+2056] ; Line 912 pop esi add esp, 8 ret 8 ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z ENDP ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back _TEXT ENDS PUBLIC __real@422c0000 PUBLIC __real@42280000 PUBLIC __$ArrayPad$ PUBLIC _main EXTRN ___security_cookie:DWORD EXTRN ___CxxFrameHandler3:PROC ; COMDAT __real@422c0000 ; File d:\c++\visual91\vc\include\xmemory CONST SEGMENT __real@422c0000 DD 0422c0000r ; 43 CONST ENDS ; COMDAT __real@42280000 CONST SEGMENT __real@42280000 DD 042280000r ; 42 CONST ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$_main DD 0ffffffffH DD FLAT:__unwindfunclet$_main$0 __ehfuncinfo$_main DD 019930522H DD 01H DD FLAT:__unwindtable$_main DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 01H ; Function compile flags: /Ogtpy xdata$x ENDS ; COMDAT _main _TEXT SEGMENT $T44047 = -2096 ; size = 8 _buf$ = -2088 ; size = 2060 __$ArrayPad$ = -20 ; size = 4 __$EHRec$ = -12 ; size = 12 _main PROC ; COMDAT ; File d:\test\pass_by_ref.cpp ; Line 5 push ebp mov ebp, esp and esp, -8 ; fffffff8H push -1 push __ehhandler$_main mov eax, DWORD PTR fs:0 push eax sub esp, 2084 ; 00000824H mov eax, DWORD PTR ___security_cookie xor eax, esp mov DWORD PTR __$ArrayPad$[esp+2096], eax mov eax, DWORD PTR ___security_cookie xor eax, esp push eax lea eax, DWORD PTR __$EHRec$[esp+2100] mov DWORD PTR fs:0, eax ; Line 7 mov ecx, 2001 ; 000007d1H mov DWORD PTR _buf$[esp+4148], ecx call ?allocate@?$allocator@U?$pair@MM@std@@@std@@QAEPAU?$pair@MM@2@I@Z ; std::allocator<std::pair<float,float> >::allocate mov DWORD PTR _buf$[esp+4152], eax mov DWORD PTR _buf$[esp+4156], 0 mov DWORD PTR __$EHRec$[esp+2108], 0 ; Line 9 movss xmm0, DWORD PTR __real@42280000 movss DWORD PTR $T44047[esp+2100], xmm0 movss xmm0, DWORD PTR __real@422c0000 mov ecx, DWORD PTR $T44047[esp+2100] movss DWORD PTR $T44047[esp+2104], xmm0 mov eax, DWORD PTR $T44047[esp+2104] push eax push ecx lea eax, DWORD PTR _buf$[esp+2108] call ?push_back@?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAEXU?$pair@MM@std@@@Z ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::push_back ; Line 10 mov eax, DWORD PTR _buf$[esp+4152] test eax, eax je SHORT $LN41@main cmp DWORD PTR _buf$[esp+4148], 256 ; 00000100H jbe SHORT $LN41@main push eax call ??3@YAXPAX@Z ; operator delete add esp, 4 $LN41@main: xor eax, eax mov ecx, DWORD PTR __$EHRec$[esp+2100] mov DWORD PTR fs:0, ecx pop ecx mov ecx, DWORD PTR __$ArrayPad$[esp+2096] xor ecx, esp call @__security_check_cookie@4 mov esp, ebp pop ebp ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$_main$0: lea ecx, DWORD PTR _buf$[ebp] jmp ??1?$auto_buffer@U?$pair@MM@std@@U?$store_n_objects@$0BAA@@boost@@Udefault_grow_policy@4@V?$allocator@U?$pair@MM@std@@@2@@boost@@QAE@XZ ; boost::auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > >::~auto_buffer<std::pair<float,float>,boost::store_n_objects<256>,boost::default_grow_policy,std::allocator<std::pair<float,float> > > __ehhandler$_main: mov edx, DWORD PTR [esp+8] lea eax, DWORD PTR [edx-2084] mov ecx, DWORD PTR [edx-2088] xor ecx, eax call @__security_check_cookie@4 add eax, 0 mov ecx, DWORD PTR [edx-8] xor ecx, eax call @__security_check_cookie@4 mov eax, OFFSET __ehfuncinfo$_main jmp ___CxxFrameHandler3 text$x ENDS _main ENDP END

On Fri, Apr 16, 2010 at 5:49 AM, Thorsten Ottosen <nesotto@cs.aau.dk> wrote:
Jeffrey Hellrung skrev:
You might want the "by-value size limit" to be platform dependent. I can imagine that the limit for 64-bit systems could arguably be twice that for 32-bit systems.
by using 2*sizeof(int) we should probably get this behavior by default. Do we know any compilers where int does not have word size?
But anyway, there might be compiler differences even on the same platform.
64-bit compilers, which have int as 32-bit for some (in my opinion) very stupid reasons (I like purity)? Perhaps use long, which should be 32-bit on 32-bit, and 64-bit on 64-bit systems, and hopefully it expands more later on too?

On 17/04/10 02:19, OvermindDL1 wrote:
On Fri, Apr 16, 2010 at 5:49 AM, Thorsten Ottosen <nesotto@cs.aau.dk> wrote:
Jeffrey Hellrung skrev:
You might want the "by-value size limit" to be platform dependent. I can imagine that the limit for 64-bit systems could arguably be twice that for 32-bit systems.
by using 2*sizeof(int) we should probably get this behavior by default. Do we know any compilers where int does not have word size?
But anyway, there might be compiler differences even on the same platform.
64-bit compilers, which have int as 32-bit for some (in my opinion) very stupid reasons (I like purity)? Perhaps use long, which should be 32-bit on 32-bit, and 64-bit on 64-bit systems, and hopefully it expands more later on too?
Not on Windows (I believe); long there is 32 bits on both architectures. You need to use void* or size_t to get something that matches the architecture. John
participants (4)
-
Jeffrey Hellrung
-
John Bytheway
-
OvermindDL1
-
Thorsten Ottosen