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}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
6cf8a0081e
commit
1a03757438
@ -565,7 +565,6 @@ rtc_library("desktop_capture_generic") {
|
||||
"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",
|
||||
|
||||
@ -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
|
||||
@ -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 @@ class Scoped {
|
||||
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_
|
||||
|
||||
Reference in New Issue
Block a user