1
Fork 0

arena: improve common patterns

This commit is contained in:
ljedrz 2018-11-30 16:38:30 +01:00
parent ca0806c703
commit 95f32f1ebd

View file

@ -310,13 +310,8 @@ impl Default for DroplessArena {
impl DroplessArena { impl DroplessArena {
pub fn in_arena<T: ?Sized>(&self, ptr: *const T) -> bool { pub fn in_arena<T: ?Sized>(&self, ptr: *const T) -> bool {
let ptr = ptr as *const u8 as *mut u8; let ptr = ptr as *const u8 as *mut u8;
for chunk in &*self.chunks.borrow() {
if chunk.start() <= ptr && ptr < chunk.end() {
return true;
}
}
false self.chunks.borrow().iter().any(|chunk| chunk.start() <= ptr && ptr < chunk.end())
} }
fn align(&self, align: usize) { fn align(&self, align: usize) {
@ -408,7 +403,7 @@ impl DroplessArena {
{ {
assert!(!mem::needs_drop::<T>()); assert!(!mem::needs_drop::<T>());
assert!(mem::size_of::<T>() != 0); assert!(mem::size_of::<T>() != 0);
assert!(slice.len() != 0); assert!(!slice.is_empty());
let mem = self.alloc_raw( let mem = self.alloc_raw(
slice.len() * mem::size_of::<T>(), slice.len() * mem::size_of::<T>(),