From ebea5e5b50ed92b80b2bdb88fffed394e28771ca Mon Sep 17 00:00:00 2001 From: "Kirill A. Khalitov" Date: Wed, 26 Jan 2022 16:02:47 +0300 Subject: [PATCH 1/2] Makes FFI-MEM-WRAPPING example a bit more Rusty --- src/en/07_ffi.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/en/07_ffi.md b/src/en/07_ffi.md index 9bd75e6..d21fd1b 100644 --- a/src/en/07_ffi.md +++ b/src/en/07_ffi.md @@ -623,12 +623,8 @@ pub struct Foo(*mut RawFoo); impl Foo { /// Create a Foo pub fn new() -> Option { - let raw_ptr = unsafe { foo_create() }; - if raw_ptr.is_null() { - None - } else { - Some(Foo(raw_ptr)) - } + let raw_ptr = unsafe { foo_create().as_mut()? }; + Some(Foo(raw_ptr)) } # /// Do something on a Foo From 850c4fb9792f0341ae38eb9edd48f1a3667c8121 Mon Sep 17 00:00:00 2001 From: Kirill Alexander Khalitov Date: Wed, 26 Jan 2022 16:49:04 +0300 Subject: [PATCH 2/2] Update src/en/07_ffi.md Co-authored-by: Daniel Henry-Mantilla --- src/en/07_ffi.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/en/07_ffi.md b/src/en/07_ffi.md index d21fd1b..146a10c 100644 --- a/src/en/07_ffi.md +++ b/src/en/07_ffi.md @@ -623,6 +623,7 @@ pub struct Foo(*mut RawFoo); impl Foo { /// Create a Foo pub fn new() -> Option { + // The `?` operator here ensures `None` is returned on `NULL`. let raw_ptr = unsafe { foo_create().as_mut()? }; Some(Foo(raw_ptr)) }