about summary refs log tree commit diff
path: root/src/libarena/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libarena/lib.rs')
-rw-r--r--src/libarena/lib.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libarena/lib.rs b/src/libarena/lib.rs
index b40e905620d..9f9ded51e37 100644
--- a/src/libarena/lib.rs
+++ b/src/libarena/lib.rs
@@ -119,6 +119,11 @@ impl<T> Default for TypedArena<T> {
 }
 
 impl<T> TypedArena<T> {
+    pub fn in_arena(&self, ptr: *const T) -> bool {
+        let ptr = ptr as *const T as *mut T;
+
+        self.chunks.borrow().iter().any(|chunk| chunk.start() <= ptr && ptr < chunk.end())
+    }
     /// Allocates an object in the `TypedArena`, returning a reference to it.
     #[inline]
     pub fn alloc(&self, object: T) -> &mut T {