From 8850c4fbffb475658489a4b1b90b1128a8933b2f Mon Sep 17 00:00:00 2001 From: Greg Morenz Date: Mon, 10 Mar 2025 15:25:57 -0400 Subject: [PATCH] Implement `Copy` and `Clone` for `Handle` where `T: !Copy` Signed-off-by: Greg Morenz --- mozjs/src/gc/root.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mozjs/src/gc/root.rs b/mozjs/src/gc/root.rs index 3f23e6035f..3b143ddbaf 100644 --- a/mozjs/src/gc/root.rs +++ b/mozjs/src/gc/root.rs @@ -95,11 +95,18 @@ impl<'a, const N: usize> From<&RootedGuard<'a, ValueArray>> for JS::HandleVal } } -#[derive(Clone, Copy)] pub struct Handle<'a, T: 'a> { pub(crate) ptr: &'a T, } +impl Clone for Handle<'_, T> { + fn clone(&self) -> Self { + *self + } +} + +impl Copy for Handle<'_, T> {} + #[derive(Copy, Clone)] pub struct MutableHandle<'a, T: 'a> { pub(crate) ptr: *mut T,