post_t's copy constructor wasn't copying xdata_

This commit is contained in:
John Wiegley 2012-03-13 00:03:56 -05:00
parent 72fc1824d0
commit 59cbcf703c
2 changed files with 8 additions and 1 deletions

View file

@ -132,7 +132,7 @@ public:
TRACE_DTOR(item_t); TRACE_DTOR(item_t);
} }
void copy_details(const item_t& item) virtual void copy_details(const item_t& item)
{ {
set_flags(item.flags()); set_flags(item.flags());
set_state(item.state()); set_state(item.state());

View file

@ -95,6 +95,7 @@ public:
xdata_(post.xdata_) xdata_(post.xdata_)
{ {
TRACE_CTOR(post_t, "copy"); TRACE_CTOR(post_t, "copy");
copy_details(post);
} }
virtual ~post_t() { virtual ~post_t() {
TRACE_DTOR(post_t); TRACE_DTOR(post_t);
@ -141,6 +142,12 @@ public:
std::size_t xact_id() const; std::size_t xact_id() const;
std::size_t account_id() const; std::size_t account_id() const;
virtual void copy_details(const item_t& item) {
const post_t& post(dynamic_cast<const post_t&>(item));
xdata_ = post.xdata_;
item_t::copy_details(item);
}
bool valid() const; bool valid() const;
struct xdata_t : public supports_flags<uint_least16_t> struct xdata_t : public supports_flags<uint_least16_t>