id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7106,multi_array::resize switches to default-constructed allocator,bmerry@…,Ronald Garcia,"I've run into this with 1.46 but eyeballing the code on trunk it doesn't seem to have changed. The implementation of `resize` starts like this: {{{ // build a multi_array with the specs given multi_array new_array(ranges,this->storage_order()); }}} However, no allocator is passed to this constructor. If `*this` has a non-default allocator, then it will not get used to allocate the resized storage, and furthermore, the default allocator in new_array will get swapped in to `*this`, wiping out the custom allocator. This can be fixed by changing this line to {{{ multi_array new_array(ranges,this->storage_order(),allocator_); }}} so that the new array uses the same allocator as the current one. I'll attach a test case that demonstrates the issue by using an allocator class where instances are named and report the allocations they make (I'm using a more complex version of this to track memory usage, which is where I hit the bug). It currently reports {{{ Allocated 17 bytes [name = vector] Allocated 0 bytes [name = multi_array] Allocated 15 bytes [name = default] }}} but with the fix applied it reports {{{ Allocated 17 bytes [name = vector] Allocated 0 bytes [name = multi_array] Allocated 15 bytes [name = multi_array] }}} It is the final line where the resize is taking place.",Bugs,new,To Be Determined,multi_array,Boost Development Trunk,Problem,,allocator,