From 083371866a83f49ae021411dc464266b87991830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 4 Dec 2017 21:30:10 +0200 Subject: [PATCH] Add helper function that allows to catch panics and poison the element --- gst-plugin/src/element.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gst-plugin/src/element.rs b/gst-plugin/src/element.rs index f294a262..7b764804 100644 --- a/gst-plugin/src/element.rs +++ b/gst-plugin/src/element.rs @@ -102,6 +102,11 @@ pub unsafe trait ElementBase: IsA + ObjectType { .unwrap_or(()) } } + + fn catch_panic T, T>(&self, fallback: T, f: F) -> T { + let panicked = unsafe { &(*self.get_instance()).panicked }; + panic_to_error!(self, panicked, fallback, { f(self) }) + } } pub unsafe trait ElementClassExt