From c7c4f13bf7bb21fba9f4d7ac1dd099d1d5b6dcf3 Mon Sep 17 00:00:00 2001 From: ksherlock Date: Mon, 28 Feb 2011 05:00:21 +0000 Subject: [PATCH] update Cache/ git-svn-id: https://profuse.googlecode.com/svn/branches/profuse_interim@368 aa027e90-d47c-11dd-86d7-074df07e0730 --- Cache/BlockCache.cpp | 3 ++- Cache/ConcreteBlockCache.cpp | 5 ++++- Cache/MappedBlockCache.cpp | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Cache/BlockCache.cpp b/Cache/BlockCache.cpp index 61462ed..3c24d2a 100644 --- a/Cache/BlockCache.cpp +++ b/Cache/BlockCache.cpp @@ -51,7 +51,8 @@ void BlockCache::read(unsigned block, void *bp) BlockCachePointer BlockCache::Create(BlockDevicePointer device) { - if (!device.get()) return BlockCachePointer(); + // this just calls the device virtual function to create a cache. + if (!device) return BlockCachePointer(); return device->createBlockCache(); } diff --git a/Cache/ConcreteBlockCache.cpp b/Cache/ConcreteBlockCache.cpp index 5bf7ede..ef8c6b1 100644 --- a/Cache/ConcreteBlockCache.cpp +++ b/Cache/ConcreteBlockCache.cpp @@ -60,7 +60,10 @@ using ProFUSE::POSIXException; BlockCachePointer ConcreteBlockCache::Create(BlockDevicePointer device, unsigned size) { - return BlockCachePointer(new ConcreteBlockCache(device, size)); + //return BlockCachePointer(new ConcreteBlockCache(device, size)); + // constructor must be accessible to std::make_shared... + + return MAKE_SHARED(ConcreteBlockCache, device, size); } ConcreteBlockCache::ConcreteBlockCache(BlockDevicePointer device, unsigned size) : diff --git a/Cache/MappedBlockCache.cpp b/Cache/MappedBlockCache.cpp index 4a65fb1..bf0892b 100644 --- a/Cache/MappedBlockCache.cpp +++ b/Cache/MappedBlockCache.cpp @@ -21,7 +21,8 @@ using ProFUSE::POSIXException; BlockCachePointer MappedBlockCache::Create(BlockDevicePointer device, void *data) { - return BlockCachePointer(new MappedBlockCache(device, data)); + //return BlockCachePointer(new MappedBlockCache(device, data)); + return MAKE_SHARED(MappedBlockCache, device, data); }