From e32699b4048dd37347a98122177cec936b2b36a8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 1 Nov 2011 22:23:37 +0000 Subject: [PATCH] mmlr + bonefish: Add ObjectCache::ObjectAtIndex(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43086 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/slab/ObjectCache.cpp | 9 ++++++++- src/system/kernel/slab/ObjectCache.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/slab/ObjectCache.cpp b/src/system/kernel/slab/ObjectCache.cpp index a68c2ce521..d16ff02943 100644 --- a/src/system/kernel/slab/ObjectCache.cpp +++ b/src/system/kernel/slab/ObjectCache.cpp @@ -141,7 +141,7 @@ ObjectCache::InitSlab(slab* slab, void* pages, size_t byteCount, uint32 flags) CREATE_PARANOIA_CHECK_SET(slab, "slab"); - + for (size_t i = 0; i < slab->size; i++) { status_t status = B_OK; if (constructor) @@ -245,6 +245,13 @@ ObjectCache::ReturnObjectToSlab(slab* source, void* object, uint32 flags) } +void* +ObjectCache::ObjectAtIndex(slab* source, int32 index) const +{ + return (uint8*)source->pages + source->offset + index * object_size; +} + + #if PARANOID_KERNEL_FREE bool diff --git a/src/system/kernel/slab/ObjectCache.h b/src/system/kernel/slab/ObjectCache.h index 1c45c96c9b..27c56cf9c4 100644 --- a/src/system/kernel/slab/ObjectCache.h +++ b/src/system/kernel/slab/ObjectCache.h @@ -106,6 +106,7 @@ public: void ReturnObjectToSlab(slab* source, void* object, uint32 flags); + void* ObjectAtIndex(slab* source, int32 index) const; bool Lock() { return mutex_lock(&lock) == B_OK; } void Unlock() { mutex_unlock(&lock); }