diff options
author | epenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-27 06:10:12 +0000 |
---|---|---|
committer | epenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-27 06:10:12 +0000 |
commit | c8021e0389e481a019865d77773c17f1d8492cdc (patch) | |
tree | 307d36abcb1a252d9c90f0fef1eaa601354dcc5a /gpu/command_buffer/common/buffer.h | |
parent | f645be519c2a95fb0540c62d5f957527ac9e9d6f (diff) | |
download | chromium_src-c8021e0389e481a019865d77773c17f1d8492cdc.zip chromium_src-c8021e0389e481a019865d77773c17f1d8492cdc.tar.gz chromium_src-c8021e0389e481a019865d77773c17f1d8492cdc.tar.bz2 |
GPU: Remove memory duplication in async uploads.
Now that gpu::Buffer is ref-counted, we can avoid duplicating
memory for security (to prevent use-after-free).
BUG=177063, 353822
Review URL: https://codereview.chromium.org/211493006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259807 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/common/buffer.h')
-rw-r--r-- | gpu/command_buffer/common/buffer.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gpu/command_buffer/common/buffer.h b/gpu/command_buffer/common/buffer.h index 74d9705..e9a1558 100644 --- a/gpu/command_buffer/common/buffer.h +++ b/gpu/command_buffer/common/buffer.h @@ -22,9 +22,12 @@ class GPU_EXPORT Buffer : public base::RefCountedThreadSafe<Buffer> { public: Buffer(scoped_ptr<base::SharedMemory> shared_memory, size_t size); - base::SharedMemory* shared_memory() { return shared_memory_.get(); } - void* memory() { return memory_; } - size_t size() { return size_; } + base::SharedMemory* shared_memory() const { return shared_memory_.get(); } + void* memory() const { return memory_; } + size_t size() const { return size_; } + + // Returns NULL if the address overflows the memory. + void* GetDataAddress(uint32 data_offset, uint32 data_size) const; private: friend class base::RefCountedThreadSafe<Buffer>; |