|
Boost : |
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2004-04-12 04:25:20
Robert Ramey <ramey <at> rrsd.com> writes:
>
> Fellow boosters,
>
> I just uploaded version #18 of the proposed boost serialization library to
> the files section. It can also be downloaded at www.rrsd.com
>
> It contains improvements in code/file/namespace organization, better
> documentation on how its implemented, and a number of arcane bug fixes.
>
I think I detected a minor bug in collections_load_imp.hpp.
The operator() code for archive_input_seq reads:
inline void operator()(Archive &ar, Container &s)
{
typedef BOOST_DEDUCED_TYPENAME Container::value_type type;
stack_allocate<type> t;
load_construct_data(ar, t.address(), 0U);
ar >> make_nvp("item", t.reference());
s.push_back(t.reference());
t.address()->~type(); // undo load_construct_data above
}
This is AFAICS not exception-safe: if say s.push_back()
throws, the dtor for the stack-allocated variable t won't
be called. The same problem in similar code snippets
through this file. Apologies if my perception is wrong.
JoaquÃn M López Muñoz
Telefónica, Investigación y Desarrollo
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk