Make ScopedFD's bool operator explicit
This prevents an implicit conversion from bool->int to ensure the user is
calling .get() properly.
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I914c0e9583fbfcaa7fafeb0474dbe068716ae19d
diff --git a/aos/scoped/scoped_fd.h b/aos/scoped/scoped_fd.h
index 116985a..e393e89 100644
--- a/aos/scoped/scoped_fd.h
+++ b/aos/scoped/scoped_fd.h
@@ -35,7 +35,7 @@
fd_ = new_fd;
}
}
- operator bool() const { return fd_ != -1; }
+ explicit operator bool() const { return fd_ != -1; }
private:
int fd_;
diff --git a/frc971/can_logger/can_logger.cc b/frc971/can_logger/can_logger.cc
index e7e1e6f..ad885de 100644
--- a/frc971/can_logger/can_logger.cc
+++ b/frc971/can_logger/can_logger.cc
@@ -32,7 +32,7 @@
CHECK_EQ(opt_size, sizeof(recieve_buffer_size));
VLOG(0) << "CAN recieve bufffer is " << recieve_buffer_size << " bytes large";
- event_loop->epoll()->OnReadable(fd_, [this]() { Poll(); });
+ event_loop->epoll()->OnReadable(fd_.get(), [this]() { Poll(); });
}
void CanLogger::Poll() {
diff --git a/y2023/vision/camera_reader.cc b/y2023/vision/camera_reader.cc
index abffac0..668026a 100644
--- a/y2023/vision/camera_reader.cc
+++ b/y2023/vision/camera_reader.cc
@@ -139,7 +139,7 @@
LOG(INFO) << "Opening " << rkisp1_params->device();
aos::ScopedFD fd(open(rkisp1_params->device().c_str(), O_RDWR));
- PCHECK(fd >= 0);
+ PCHECK(fd.get() >= 0);
struct v4l2_capability capability;
memset(&capability, 0, sizeof(capability));