Commit 505d6fba authored by jln@chromium.org's avatar jln@chromium.org

Revert 152049 - Fix memory leaks in extensions::SocketPermission.


BUG=None

Review URL: https://chromiumcodereview.appspot.com/10832354

TBR=penghuang@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10832362

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152053 0039d316-1c4b-4281-b951-d872f2087c98
parent 62701f41
......@@ -90,50 +90,36 @@ APIPermissionDetail* SocketPermission::Diff(
const APIPermissionDetail* rhs) const {
CHECK(rhs->permission() == permission());
const SocketPermission* perm = static_cast<const SocketPermission*>(rhs);
SocketPermission* result = new SocketPermission(permission());
scoped_refptr<SocketPermission> result = new SocketPermission(permission());
std::set_difference(data_set_.begin(), data_set_.end(),
perm->data_set_.begin(), perm->data_set_.end(),
std::inserter<std::set<SocketPermissionData> >(
result->data_set_, result->data_set_.begin()));
if (result->data_set_.empty()) {
delete result;
result = NULL;
}
return result;
return result->data_set_.empty() ? NULL : result.release();
}
APIPermissionDetail* SocketPermission::Union(
const APIPermissionDetail* rhs) const {
CHECK(rhs->permission() == permission());
const SocketPermission* perm = static_cast<const SocketPermission*>(rhs);
SocketPermission* result = new SocketPermission(permission());
scoped_refptr<SocketPermission> result = new SocketPermission(permission());
std::set_union(data_set_.begin(), data_set_.end(),
perm->data_set_.begin(), perm->data_set_.end(),
std::inserter<std::set<SocketPermissionData> >(
result->data_set_, result->data_set_.begin()));
if (result->data_set_.empty()) {
delete result;
result = NULL;
}
return result;
return result->data_set_.empty() ? NULL : result.release();
}
APIPermissionDetail* SocketPermission::Intersect(
const APIPermissionDetail* rhs) const {
CHECK(rhs->permission() == permission());
const SocketPermission* perm = static_cast<const SocketPermission*>(rhs);
SocketPermission* result = new SocketPermission(permission());
scoped_refptr<SocketPermission> result = new SocketPermission(permission());
std::set_intersection(data_set_.begin(), data_set_.end(),
perm->data_set_.begin(), perm->data_set_.end(),
std::inserter<std::set<SocketPermissionData> >(
result->data_set_, result->data_set_.begin()));
if (result->data_set_.empty()) {
delete result;
result = NULL;
}
return result;
return result->data_set_.empty() ? NULL : result.release();
}
void SocketPermission::Write(IPC::Message* m) const {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment