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
@ -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