Add operator int() to unique_fd.

Change-Id: I7512559be7befbb8772d5529e06550267a2f1543
This commit is contained in:
Elliott Hughes 2016-03-28 12:15:36 -07:00
parent 3761365735
commit 2c5d1d7cd9
5 changed files with 8 additions and 11 deletions

View file

@ -64,6 +64,7 @@ class unique_fd final {
}
int get() const { return value_; }
operator int() const { return get(); }
int release() __attribute__((warn_unused_result)) {
int ret = value_;

View file

@ -41,7 +41,7 @@ namespace {
// the value of the record.
bool CreateEmptyBootEventRecord(const std::string& record_path, int32_t value) {
android::base::unique_fd record_fd(creat(record_path.c_str(), S_IRUSR | S_IWUSR));
if (record_fd.get() == -1) {
if (record_fd == -1) {
return false;
}
@ -49,7 +49,7 @@ bool CreateEmptyBootEventRecord(const std::string& record_path, int32_t value) {
// ensure the validity of the file mtime value, i.e., to check that the record
// file mtime values are not changed once set.
// TODO(jhawkins): Remove this block.
if (!android::base::WriteStringToFd(std::to_string(value), record_fd.get())) {
if (!android::base::WriteStringToFd(std::to_string(value), record_fd)) {
return false;
}

View file

@ -30,11 +30,10 @@
bool ProcessMappings(pid_t pid, allocator::vector<Mapping>& mappings) {
char map_buffer[1024];
snprintf(map_buffer, sizeof(map_buffer), "/proc/%d/maps", pid);
int fd = open(map_buffer, O_RDONLY);
if (fd < 0) {
android::base::unique_fd fd(open(map_buffer, O_RDONLY));
if (fd == -1) {
return false;
}
android::base::unique_fd fd_guard{fd};
LineBuffer line_buf(fd, map_buffer, sizeof(map_buffer));
char* line;

View file

@ -108,12 +108,11 @@ bool ThreadCaptureImpl::ListThreads(TidList& tids) {
strlcat(path, pid_str, sizeof(path));
strlcat(path, "/task", sizeof(path));
int fd = open(path, O_CLOEXEC | O_DIRECTORY | O_RDONLY);
if (fd < 0) {
android::base::unique_fd fd(open(path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
if (fd == -1) {
ALOGE("failed to open %s: %s", path, strerror(errno));
return false;
}
android::base::unique_fd fd_guard{fd};
struct linux_dirent64 {
uint64_t d_ino;
@ -125,7 +124,7 @@ bool ThreadCaptureImpl::ListThreads(TidList& tids) {
char dirent_buf[4096];
ssize_t nread;
do {
nread = syscall(SYS_getdents64, fd, dirent_buf, sizeof(dirent_buf));
nread = syscall(SYS_getdents64, fd.get(), dirent_buf, sizeof(dirent_buf));
if (nread < 0) {
ALOGE("failed to get directory entries from %s: %s", path, strerror(errno));
return false;

View file

@ -28,8 +28,6 @@
#include <gtest/gtest.h>
#include <android-base/unique_fd.h>
#include "Allocator.h"
#include "ScopedDisableMalloc.h"
#include "ScopedPipe.h"