mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Replace NonZero<*mut JSObject> with a wrapper to enable local trait impls.
This commit is contained in:
parent
115d859551
commit
e2fafd2dfc
22 changed files with 108 additions and 69 deletions
24
components/script/dom/bindings/nonnull.rs
Normal file
24
components/script/dom/bindings/nonnull.rs
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
//! A wrapper type for `NonZero<*mut JSObject>`, to enable local trait impls
|
||||
|
||||
use js::jsapi::JSObject;
|
||||
use nonzero::NonZero;
|
||||
|
||||
/// A wrapper type for `NonZero<*mut JSObject>`, to enable local trait impls
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct NonNullJSObjectPtr(NonZero<*mut JSObject>);
|
||||
|
||||
impl NonNullJSObjectPtr {
|
||||
#[inline]
|
||||
pub unsafe fn new_unchecked(ptr: *mut JSObject) -> Self {
|
||||
NonNullJSObjectPtr(NonZero::new_unchecked(ptr))
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn get(self) -> *mut JSObject {
|
||||
self.0.get()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue