Re: [PATCH] rust: device: Replace CString with CStr in property_present()
From: Viresh Kumar
Date: Thu Jan 16 2025 - 03:35:48 EST
On 16-01-25, 09:25, Alice Ryhl wrote:
> On Thu, Jan 16, 2025 at 6:26 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> >
> > The property_present() method expects a &CString currently and will work
> > only with heap allocated C strings.
> >
> > In order to make it work with compile-time string constants too, change
> > the argument type to &CStr.
> >
> > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
>
> One nit below, but either way:
>
> Reviewed-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>
>
> > - pub fn property_present(&self, name: &CString) -> bool {
> > - // SAFETY: By the invariant of `CString`, `name` is null-terminated.
> > + pub fn property_present(&self, name: &CStr) -> bool {
> > + // SAFETY: By the invariant of `CStr`, `name` is null-terminated.
> > unsafe { bindings::device_property_present(self.as_raw().cast_const(), name.as_ptr() as *const _) }
>
> If you use `name.as_char_ptr()` then you don't need the cast.
Fixed as a separate commit. Thanks.
--
viresh