diff options
author | 2010-12-20 18:26:13 +0000 | |
---|---|---|
committer | 2010-12-20 18:26:13 +0000 | |
commit | f2b98d67dcb6fcb3120feede9c72016fc7b3ead8 (patch) | |
tree | d78b57945b29865dcdeb1badbb360575289b292d /src/core/SkChunkAlloc.cpp | |
parent | 29e5054dd07c97c2195c5f64bf67aaa6b5afa204 (diff) |
merge with changes for GPU backend
git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkChunkAlloc.cpp')
-rw-r--r-- | src/core/SkChunkAlloc.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/SkChunkAlloc.cpp b/src/core/SkChunkAlloc.cpp index 90a0c2ad11..e0c03a85a9 100644 --- a/src/core/SkChunkAlloc.cpp +++ b/src/core/SkChunkAlloc.cpp @@ -49,6 +49,11 @@ struct SkChunkAlloc::Block { } return block; } + + bool contains(const void* addr) const { + const char* ptr = reinterpret_cast<const char*>(addr); + return ptr >= (const char*)(this + 1) && ptr < fFreePtr; + } }; SkChunkAlloc::SkChunkAlloc(size_t minSize) @@ -139,3 +144,14 @@ size_t SkChunkAlloc::unalloc(void* ptr) { return bytes; } +bool SkChunkAlloc::contains(const void* addr) const { + const Block* block = fBlock; + while (block) { + if (block->contains(addr)) { + return true; + } + block = block->fNext; + } + return false; +} + |