Index: ui/ozone/platform/drm/common/client_native_pixmap_factory_gbm.cc |
diff --git a/ui/ozone/platform/drm/common/client_native_pixmap_factory_gbm.cc b/ui/ozone/platform/drm/common/client_native_pixmap_factory_gbm.cc |
index ca150e5d56c78d153ab489185dd7716d85758f91..e6fc17db2473a9fab91edb183251ed2fc06d9f07 100644 |
--- a/ui/ozone/platform/drm/common/client_native_pixmap_factory_gbm.cc |
+++ b/ui/ozone/platform/drm/common/client_native_pixmap_factory_gbm.cc |
@@ -14,7 +14,11 @@ namespace { |
class ClientNativePixmapFactoryGbm : public ClientNativePixmapFactory { |
public: |
ClientNativePixmapFactoryGbm() {} |
- ~ClientNativePixmapFactoryGbm() override {} |
+ ~ClientNativePixmapFactoryGbm() override { |
+ if (vgem_fd_.auto_close) { |
+ base::ScopedFD closing_fd(vgem_fd_.fd); |
+ } |
+ } |
// ClientNativePixmapFactory: |
std::vector<Configuration> GetSupportedConfigurations() const override { |
@@ -35,6 +39,14 @@ class ClientNativePixmapFactoryGbm : public ClientNativePixmapFactory { |
} |
private: |
+ void Initialize(const base::FileDescriptor& virtual_device) override { |
+ DCHECK_EQ(vgem_fd_.fd, -1); |
+ if (virtual_device.fd >= 0) |
+ vgem_fd_ = virtual_device; |
+ } |
+ |
+ base::FileDescriptor vgem_fd_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ClientNativePixmapFactoryGbm); |
}; |