messenger = m;
// osd interfaces
- mdsmap = new MDSMap;
+ mdsmap.reset(new MDSMap);
objecter = new Objecter(cct, messenger, monclient, NULL,
0, 0);
objecter->set_client_incarnation(0); // client always 0, for now.
delete filer;
delete objecter;
- delete mdsmap;
delete fsmap;
delete logger;
ldout(cct, 1) << "handle_mds_map epoch " << m->get_epoch() << dendl;
- MDSMap *oldmap = mdsmap;
- mdsmap = new MDSMap;
+ std::unique_ptr<MDSMap> oldmap(new MDSMap);
+ oldmap.swap(mdsmap);
+
mdsmap->decode(m->get_encoded());
// Cancel any commands for missing or laggy GIDs
// kick any waiting threads
signal_cond_list(waiting_for_mdsmap);
- delete oldmap;
m->put();
monclient->sub_got("mdsmap", mdsmap->get_epoch());