summaryrefslogtreecommitdiffstats
path: root/base/memory/ref_counted_memory.h
diff options
context:
space:
mode:
authorjoaoe@opera.com <joaoe@opera.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-22 01:49:35 +0000
committerjoaoe@opera.com <joaoe@opera.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-22 01:49:35 +0000
commit4088783c8eeb9ccebc4cd6024ea3ba9316b37bd4 (patch)
treef86c7528f77eb1fd444aa135a79ca7b4b0d1b90e /base/memory/ref_counted_memory.h
parentb40f9eec3f745917743474facfe049fc31fda2ce (diff)
downloadchromium_src-4088783c8eeb9ccebc4cd6024ea3ba9316b37bd4.zip
chromium_src-4088783c8eeb9ccebc4cd6024ea3ba9316b37bd4.tar.gz
chromium_src-4088783c8eeb9ccebc4cd6024ea3ba9316b37bd4.tar.bz2
Added RefCountedMallocedMemory
Which takes ownership over a chunk of memory allocated with malloc or calloc and must then be freed using free(). Review URL: https://codereview.chromium.org/78603002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236675 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/memory/ref_counted_memory.h')
-rw-r--r--base/memory/ref_counted_memory.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/base/memory/ref_counted_memory.h b/base/memory/ref_counted_memory.h
index fd5e8a0..d2987c5 100644
--- a/base/memory/ref_counted_memory.h
+++ b/base/memory/ref_counted_memory.h
@@ -113,6 +113,26 @@ class BASE_EXPORT RefCountedString : public RefCountedMemory {
DISALLOW_COPY_AND_ASSIGN(RefCountedString);
};
+// An implementation of RefCountedMemory that holds a chunk of memory
+// previously allocated with malloc or calloc, and that therefore must be freed
+// using free().
+class BASE_EXPORT RefCountedMallocedMemory : public base::RefCountedMemory {
+ public:
+ RefCountedMallocedMemory(void* data, size_t length);
+
+ // Overridden from RefCountedMemory:
+ virtual const unsigned char* front() const OVERRIDE;
+ virtual size_t size() const OVERRIDE;
+
+ private:
+ virtual ~RefCountedMallocedMemory();
+
+ unsigned char* data_;
+ size_t length_;
+
+ DISALLOW_COPY_AND_ASSIGN(RefCountedMallocedMemory);
+};
+
} // namespace base
#endif // BASE_MEMORY_REF_COUNTED_MEMORY_H_