diff --git a/minui/include/minui/minui.h b/minui/include/minui/minui.h
index 0b499e6..3231248 100644
--- a/minui/include/minui/minui.h
+++ b/minui/include/minui/minui.h
@@ -17,6 +17,7 @@
 #pragma once
 
 #include <stdint.h>
+#include <stdlib.h>
 #include <sys/types.h>
 
 #include <functional>
@@ -32,7 +33,7 @@
 
 class GRSurface {
  public:
-  virtual ~GRSurface();
+  virtual ~GRSurface() = default;
 
   // Creates and returns a GRSurface instance that's sufficient for storing an image of the given
   // size. The starting address of the surface data is aligned to SURFACE_DATA_ALIGNMENT. Returns
@@ -44,7 +45,7 @@
   std::unique_ptr<GRSurface> Clone() const;
 
   virtual uint8_t* data() {
-    return data_;
+    return data_.get();
   }
 
   const uint8_t* data() const {
@@ -61,7 +62,14 @@
       : width(width), height(height), row_bytes(row_bytes), pixel_bytes(pixel_bytes) {}
 
  private:
-  uint8_t* data_{ nullptr };
+  // The deleter for data_, whose data is allocated via aligned_alloc(3).
+  struct DataDeleter {
+    void operator()(uint8_t* data) {
+      free(data);
+    }
+  };
+
+  std::unique_ptr<uint8_t, DataDeleter> data_;
   size_t data_size_;
 
   DISALLOW_COPY_AND_ASSIGN(GRSurface);
diff --git a/minui/resources.cpp b/minui/resources.cpp
index 9027bc6..c7af190 100644
--- a/minui/resources.cpp
+++ b/minui/resources.cpp
@@ -46,24 +46,19 @@
   auto result = std::unique_ptr<GRSurface>(new GRSurface(width, height, row_bytes, pixel_bytes));
   result->data_size_ =
       (data_size + kSurfaceDataAlignment - 1) / kSurfaceDataAlignment * kSurfaceDataAlignment;
-  result->data_ = static_cast<uint8_t*>(aligned_alloc(kSurfaceDataAlignment, result->data_size_));
-  if (result->data_ == nullptr) return nullptr;
+  result->data_.reset(
+      static_cast<uint8_t*>(aligned_alloc(kSurfaceDataAlignment, result->data_size_)));
+  if (!result->data_) return nullptr;
   return result;
 }
 
 std::unique_ptr<GRSurface> GRSurface::Clone() const {
   auto result = GRSurface::Create(width, height, row_bytes, pixel_bytes, data_size_);
-  memcpy(result->data_, data_, data_size_);
+  if (!result) return nullptr;
+  memcpy(result->data(), data(), data_size_);
   return result;
 }
 
-GRSurface::~GRSurface() {
-  if (data_ != nullptr) {
-    free(data_);
-    data_ = nullptr;
-  }
-}
-
 PngHandler::PngHandler(const std::string& name) {
   std::string res_path = g_resource_dir + "/" + name + ".png";
   png_fp_.reset(fopen(res_path.c_str(), "rbe"));
