avm2: Impl `Eq`, `Hash` for `Object` using ptr values

This commit is contained in:
David Wendt 2021-04-09 17:54:51 -04:00 committed by Mike Welsh
parent a157d7ab72
commit 68c270e7c0
1 changed files with 15 additions and 0 deletions

View File

@ -19,6 +19,7 @@ use gc_arena::{Collect, GcCell, MutationContext};
use ruffle_macros::enum_trait_object; use ruffle_macros::enum_trait_object;
use std::cell::{Ref, RefMut}; use std::cell::{Ref, RefMut};
use std::fmt::Debug; use std::fmt::Debug;
use std::hash::{Hash, Hasher};
mod array_object; mod array_object;
mod bytearray_object; mod bytearray_object;
@ -931,3 +932,17 @@ impl<'gc> Object<'gc> {
a.as_ptr() == b.as_ptr() a.as_ptr() == b.as_ptr()
} }
} }
impl<'gc> PartialEq for Object<'gc> {
fn eq(&self, other: &Self) -> bool {
Object::ptr_eq(*self, *other)
}
}
impl<'gc> Eq for Object<'gc> {}
impl<'gc> Hash for Object<'gc> {
fn hash<H: Hasher>(&self, state: &mut H) {
self.as_ptr().hash(state);
}
}