aboutsummaryrefslogtreecommitdiffstats
path: root/components/shared/canvas/webgl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/shared/canvas/webgl.rs')
-rw-r--r--components/shared/canvas/webgl.rs16
1 files changed, 5 insertions, 11 deletions
diff --git a/components/shared/canvas/webgl.rs b/components/shared/canvas/webgl.rs
index 8bd1d9cd440..eaa934fc145 100644
--- a/components/shared/canvas/webgl.rs
+++ b/components/shared/canvas/webgl.rs
@@ -570,15 +570,9 @@ macro_rules! define_resource_id {
pub struct $name(nonzero_type!($type));
impl $name {
- #[allow(unsafe_code)]
#[inline]
- /// Create a new $name.
- ///
- /// # Safety
- ///
- /// Using an invalid OpenGL id may result in undefined behavior.
- pub unsafe fn new(id: $type) -> Self {
- $name(<nonzero_type!($type)>::new_unchecked(id))
+ pub fn new(id: nonzero_type!($type)) -> Self {
+ Self(id)
}
#[inline]
@@ -599,10 +593,10 @@ macro_rules! define_resource_id {
D: ::serde::Deserializer<'de>,
{
let id = <$type>::deserialize(deserializer)?;
- if id == 0 {
- Err(::serde::de::Error::custom("expected a non-zero value"))
+ if let Some(id) = <nonzero_type!($type)>::new(id) {
+ Ok($name(id))
} else {
- Ok(unsafe { $name::new(id) })
+ Err(::serde::de::Error::custom("expected a non-zero value"))
}
}
}