desktop_capturer: Fix usage of scoped_glib class
This fixes a crash introduced with recent move of Scoped class for
glib objects into a separated implementation.
Bug: chromium:1291247
Change-Id: I49d56bc0811f52434213516f51ca9e8712692e15
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/250840
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#35922}
diff --git a/modules/desktop_capture/BUILD.gn b/modules/desktop_capture/BUILD.gn
index 8701c29..363e318 100644
--- a/modules/desktop_capture/BUILD.gn
+++ b/modules/desktop_capture/BUILD.gn
@@ -565,7 +565,6 @@
"linux/wayland/base_capturer_pipewire.h",
"linux/wayland/egl_dmabuf.cc",
"linux/wayland/egl_dmabuf.h",
- "linux/wayland/scoped_glib.cc",
"linux/wayland/scoped_glib.h",
"linux/wayland/screencast_portal.cc",
"linux/wayland/screencast_portal.h",
diff --git a/modules/desktop_capture/linux/wayland/scoped_glib.cc b/modules/desktop_capture/linux/wayland/scoped_glib.cc
deleted file mode 100644
index df588f0..0000000
--- a/modules/desktop_capture/linux/wayland/scoped_glib.cc
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2022 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "modules/desktop_capture/linux/wayland/scoped_glib.h"
-
-#include <gio/gio.h>
-
-namespace webrtc {
-
-template <>
-Scoped<GError>::~Scoped() {
- if (ptr_) {
- g_error_free(ptr_);
- }
-}
-
-template <>
-Scoped<char>::~Scoped() {
- if (ptr_) {
- g_free(ptr_);
- }
-}
-
-template <>
-Scoped<GVariant>::~Scoped() {
- if (ptr_) {
- g_variant_unref(ptr_);
- }
-}
-
-template <>
-Scoped<GVariantIter>::~Scoped() {
- if (ptr_) {
- g_variant_iter_free(ptr_);
- }
-}
-
-template <>
-Scoped<GDBusMessage>::~Scoped() {
- if (ptr_) {
- g_object_unref(ptr_);
- }
-}
-
-template <>
-Scoped<GUnixFDList>::~Scoped() {
- if (ptr_) {
- g_object_unref(ptr_);
- }
-}
-
-} // namespace webrtc
diff --git a/modules/desktop_capture/linux/wayland/scoped_glib.h b/modules/desktop_capture/linux/wayland/scoped_glib.h
index de82557..3af43ce 100644
--- a/modules/desktop_capture/linux/wayland/scoped_glib.h
+++ b/modules/desktop_capture/linux/wayland/scoped_glib.h
@@ -11,6 +11,8 @@
#ifndef MODULES_DESKTOP_CAPTURE_LINUX_WAYLAND_SCOPED_GLIB_H_
#define MODULES_DESKTOP_CAPTURE_LINUX_WAYLAND_SCOPED_GLIB_H_
+#include <gio/gio.h>
+
#include "rtc_base/checks.h"
namespace webrtc {
@@ -45,6 +47,48 @@
T* ptr_ = nullptr;
};
+template <>
+Scoped<GError>::~Scoped() {
+ if (ptr_) {
+ g_error_free(ptr_);
+ }
+}
+
+template <>
+Scoped<char>::~Scoped() {
+ if (ptr_) {
+ g_free(ptr_);
+ }
+}
+
+template <>
+Scoped<GVariant>::~Scoped() {
+ if (ptr_) {
+ g_variant_unref(ptr_);
+ }
+}
+
+template <>
+Scoped<GVariantIter>::~Scoped() {
+ if (ptr_) {
+ g_variant_iter_free(ptr_);
+ }
+}
+
+template <>
+Scoped<GDBusMessage>::~Scoped() {
+ if (ptr_) {
+ g_object_unref(ptr_);
+ }
+}
+
+template <>
+Scoped<GUnixFDList>::~Scoped() {
+ if (ptr_) {
+ g_object_unref(ptr_);
+ }
+}
+
} // namespace webrtc
#endif // MODULES_DESKTOP_CAPTURE_LINUX_WAYLAND_SCOPED_GLIB_H_