Use unique_ptr instead of std::auto_ptr

This commit is contained in:
John Wiegley 2012-03-05 17:46:42 -06:00
parent 477a9106e3
commit b6adc8f460
9 changed files with 17 additions and 17 deletions

View file

@ -1027,12 +1027,12 @@ bool amount_t::parse(std::istream& in, const parse_flags_t& flags)
}
// Allocate memory for the amount's quantity value. We have to
// monitor the allocation in an auto_ptr because this function gets
// monitor the allocation in a unique_ptr because this function gets
// called sometimes from amount_t's constructor; and if there is an
// exeception thrown by any of the function calls after this point,
// the destructor will never be called and the memory never freed.
std::auto_ptr<bigint_t> new_quantity;
unique_ptr<bigint_t> new_quantity;
if (quantity) {
if (quantity->refc > 1)

View file

@ -139,8 +139,8 @@ xact_t * csv_reader::read_xact(bool rich_data)
std::istringstream instr(line);
std::auto_ptr<xact_t> xact(new xact_t);
std::auto_ptr<post_t> post(new post_t);
unique_ptr<xact_t> xact(new xact_t);
unique_ptr<post_t> post(new post_t);
xact->set_state(item_t::CLEARED);

View file

@ -233,7 +233,7 @@ xact_t * draft_t::insert(journal_t& journal)
throw std::runtime_error(_("'xact' command requires at least a payee"));
xact_t * matching = NULL;
std::auto_ptr<xact_t> added(new xact_t);
unique_ptr<xact_t> added(new xact_t);
if (xact_t * xact =
lookup_probable_account(tmpl->payee_mask.str(), journal.xacts.rbegin(),
@ -316,7 +316,7 @@ xact_t * draft_t::insert(journal_t& journal)
}
foreach (xact_template_t::post_template_t& post, tmpl->posts) {
std::auto_ptr<post_t> new_post;
unique_ptr<post_t> new_post;
commodity_t * found_commodity = NULL;

View file

@ -125,7 +125,7 @@ namespace {
format_t::element_t * format_t::parse_elements(const string& fmt,
const optional<format_t&>& tmpl)
{
std::auto_ptr<element_t> result;
unique_ptr<element_t> result;
element_t * current = NULL;

View file

@ -80,7 +80,7 @@ int main(int argc, char * argv[], char * envp[])
::textdomain("ledger");
#endif
std::auto_ptr<global_scope_t> global_scope;
unique_ptr<global_scope_t> global_scope;
try {
// Create the session object, which maintains nearly all state relating to

View file

@ -309,7 +309,7 @@ void report_t::posts_report(post_handler_ptr handler)
{
handler = chain_post_handlers(handler, *this);
if (HANDLED(group_by_)) {
std::auto_ptr<post_splitter>
unique_ptr<post_splitter>
splitter(new post_splitter(handler, *this, HANDLER(group_by_).expr));
splitter->set_postflush_func(posts_flusher(handler, *this));
handler = post_handler_ptr(splitter.release());

View file

@ -59,8 +59,8 @@ class session_t : public symbol_scope_t
public:
bool flush_on_next_data_file;
std::auto_ptr<journal_t> journal;
parse_context_stack_t parsing_context;
unique_ptr<journal_t> journal;
parse_context_stack_t parsing_context;
explicit session_t();
virtual ~session_t() {

View file

@ -527,7 +527,7 @@ void instance_t::automated_xact_directive(char * line)
query.parse_args(string_value(skip_ws(line + 1)).to_sequence(),
keeper, false, true);
std::auto_ptr<auto_xact_t> ae(new auto_xact_t(predicate_t(expr, keeper)));
unique_ptr<auto_xact_t> ae(new auto_xact_t(predicate_t(expr, keeper)));
ae->pos = position_t();
ae->pos->pathname = context.pathname;
ae->pos->beg_pos = context.line_beg_pos;
@ -621,7 +621,7 @@ void instance_t::period_xact_directive(char * line)
try {
std::auto_ptr<period_xact_t> pe(new period_xact_t(skip_ws(line + 1)));
unique_ptr<period_xact_t> pe(new period_xact_t(skip_ws(line + 1)));
pe->pos = position_t();
pe->pos->pathname = context.pathname;
pe->pos->beg_pos = context.line_beg_pos;
@ -665,7 +665,7 @@ void instance_t::xact_directive(char * line, std::streamsize len)
TRACE_START(xacts, 1, "Time spent handling transactions:");
if (xact_t * xact = parse_xact(line, len, top_account())) {
std::auto_ptr<xact_t> manager(xact);
unique_ptr<xact_t> manager(xact);
if (context.journal->add_xact(xact)) {
manager.release(); // it's owned by the journal now
@ -874,7 +874,7 @@ void instance_t::account_directive(char * line)
char * p = skip_ws(line);
account_t * account =
context.journal->register_account(p, NULL, top_account());
std::auto_ptr<auto_xact_t> ae;
unique_ptr<auto_xact_t> ae;
while (peek_whitespace_line()) {
read_line(line);
@ -1287,7 +1287,7 @@ post_t * instance_t::parse_post(char * line,
{
TRACE_START(post_details, 1, "Time spent parsing postings:");
std::auto_ptr<post_t> post(new post_t);
unique_ptr<post_t> post(new post_t);
post->xact = xact; // this could be NULL
post->pos = position_t();

View file

@ -88,7 +88,7 @@ namespace {
if (! out_event.note.empty() && event.note.empty())
event.note = out_event.note;
std::auto_ptr<xact_t> curr(new xact_t);
unique_ptr<xact_t> curr(new xact_t);
curr->_date = event.checkin.date();
curr->code = out_event.desc; // if it wasn't used above
curr->payee = event.desc;