diff --git a/glib/src/gstring.rs b/glib/src/gstring.rs index bce751a2c3a3..6ac012b1abf7 100644 --- a/glib/src/gstring.rs +++ b/glib/src/gstring.rs @@ -1807,6 +1807,15 @@ impl From<&String> for GString { } } +impl From for GString { + #[inline] + fn from(s: GStringPtr) -> Self { + let s = mem::ManuallyDrop::new(s); + let len = unsafe { GStr::from_ptr(s.0.as_ptr()).len() }; + GString(Inner::Foreign { ptr: s.0, len }) + } +} + impl TryFrom for GString { type Error = GStringUtf8Error; #[inline]