diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-10-16 17:07:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-16 17:07:50 -0500 |
commit | e8a6f2862c2a6084e4f4e64ab466c89ae83cff59 (patch) | |
tree | 645db1e37eceef034743c28f9af1544a3fff6d8d /components/script/dom/bindings/nonnull.rs | |
parent | 3209d22968046b5c3d29a37b79a655497db2050a (diff) | |
parent | 49e4540ece8641afcb6534a9c3b74e88895f5447 (diff) | |
download | servo-e8a6f2862c2a6084e4f4e64ab466c89ae83cff59.tar.gz servo-e8a6f2862c2a6084e4f4e64ab466c89ae83cff59.zip |
Auto merge of #18875 - servo:stable-js, r=nox,jdm
Remove the need for rust-mozjs to use unstable Rust features
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18875)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/nonnull.rs')
-rw-r--r-- | components/script/dom/bindings/nonnull.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/components/script/dom/bindings/nonnull.rs b/components/script/dom/bindings/nonnull.rs new file mode 100644 index 00000000000..36dade7136b --- /dev/null +++ b/components/script/dom/bindings/nonnull.rs @@ -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() + } +} |