int result = 0;
string cname, mname;
- PGLSFilter *filter = NULL;
snapid_t snapid = m->get_snapid();
vector<OSDOp> ops = m->ops;
for (vector<OSDOp>::iterator p = ops.begin(); p != ops.end(); ++p) {
+ std::unique_ptr<PGLSFilter> filter;
OSDOp& osd_op = *p;
auto bp = p->indata.cbegin();
switch (p->op.op) {
result = -EINVAL;
break;
}
- if (filter) {
- delete filter;
- filter = NULL;
+ {
+ PGLSFilter* tmp_filter;
+ result = get_pgls_filter(bp, &tmp_filter);
+ filter.reset(tmp_filter);
}
- result = get_pgls_filter(bp, &filter);
if (result < 0)
break;
result = -EINVAL;
break;
}
- if (filter) {
- delete filter;
- filter = NULL;
+
+ {
+ PGLSFilter* tmp_filter;
+ result = get_pgls_filter(bp, &tmp_filter);
+ filter.reset(tmp_filter);
}
- result = get_pgls_filter(bp, &filter);
if (result < 0)
break;
}
if (is_unreadable_object(oid)) {
wait_for_unreadable_object(oid, op);
- delete filter;
return;
}
result = osd->store->read(ch, ghobject_t(oid), 0, 0, osd_op.outdata);
reply->set_result(result);
reply->set_reply_versions(info.last_update, info.last_user_version);
osd->send_message_osd_client(reply, m->get_connection());
- delete filter;
}
int PrimaryLogPG::do_scrub_ls(MOSDOp *m, OSDOp *osd_op)