diff --git a/backend/Backend.cpp b/backend/Backend.cpp
index ce606dd..6f334c7 100644
--- a/backend/Backend.cpp
+++ b/backend/Backend.cpp
@@ -63,7 +63,7 @@
                                                    client_size);
   display->total_stats().total_pixops_ += CalcPixOps(layers, 0, layers.size());
 
-  return *num_types ? HWC2::Error::HasChanges : HWC2::Error::None;
+  return *num_types != 0 ? HWC2::Error::HasChanges : HWC2::Error::None;
 }
 
 std::tuple<int, size_t> Backend::GetClientLayers(
diff --git a/backend/Backend.h b/backend/Backend.h
index fc9a733..38376aa 100644
--- a/backend/Backend.h
+++ b/backend/Backend.h
@@ -34,12 +34,12 @@
                              DrmHwcTwo::HwcLayer *layer);
 
  protected:
-  bool HardwareSupportsLayerType(HWC2::Composition comp_type);
-  uint32_t CalcPixOps(const std::vector<DrmHwcTwo::HwcLayer *> &layers,
-                      size_t first_z, size_t size);
-  void MarkValidated(std::vector<DrmHwcTwo::HwcLayer *> &layers,
-                     size_t client_first_z, size_t client_size);
-  std::tuple<int, int> GetExtraClientRange(
+  static bool HardwareSupportsLayerType(HWC2::Composition comp_type);
+  static uint32_t CalcPixOps(const std::vector<DrmHwcTwo::HwcLayer *> &layers,
+                             size_t first_z, size_t size);
+  static void MarkValidated(std::vector<DrmHwcTwo::HwcLayer *> &layers,
+                            size_t client_first_z, size_t client_size);
+  static std::tuple<int, int> GetExtraClientRange(
       DrmHwcTwo::HwcDisplay *display,
       const std::vector<DrmHwcTwo::HwcLayer *> &layers, int client_start,
       size_t client_size);
diff --git a/backend/BackendManager.cpp b/backend/BackendManager.cpp
index 7b89761..36fb55f 100644
--- a/backend/BackendManager.cpp
+++ b/backend/BackendManager.cpp
@@ -49,7 +49,7 @@
   std::string backend_name(backend_override);
 
   display->set_backend(GetBackendByName(backend_name));
-  if (!display->backend()) {
+  if (display->backend() == nullptr) {
     ALOGE("Failed to set backend '%s' for '%s' and driver '%s'",
           backend_name.c_str(), display->connector()->name().c_str(),
           driver_name.c_str());
diff --git a/backend/BackendRCarDu.cpp b/backend/BackendRCarDu.cpp
index b012797..9adfa62 100644
--- a/backend/BackendRCarDu.cpp
+++ b/backend/BackendRCarDu.cpp
@@ -28,7 +28,7 @@
 
   int ret = BufferInfoGetter::GetInstance()->ConvertBoInfo(layer->buffer(),
                                                            &bo);
-  if (ret)
+  if (ret != 0)
     return true;
 
   if (bo.format == DRM_FORMAT_ABGR8888)
