
On Sat, 2008-04-26 at 13:20 -0400, Frank Mori Hess wrote:
On Saturday 26 April 2008 12:34, Daniel Frey wrote:
OK, understood. The attached version should behave as expected and passes all regression tests. It requires weak_count.empty().
One minor tweak, init_weak_once doesn't seem to need two if statements:
void init_weak_once() const { if( _weak_count.empty() ) { detail::shared_count( (void*)0, detail::sp_deleter_wrapper() ).swap( _shared_count ); _weak_count = _shared_count; } }
Yepp. I already noticed it as well. :) I think all in all the new version is a good improvement over the former one. It passes the new regression test, it is more efficient and FWIW I find its implementation details much easier to understand than the trunk version. OK to commit? Regards, Daniel