summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/common/buffer.h
diff options
context:
space:
mode:
authorepenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-27 06:10:12 +0000
committerepenner@chromium.org <epenner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-27 06:10:12 +0000
commitc8021e0389e481a019865d77773c17f1d8492cdc (patch)
tree307d36abcb1a252d9c90f0fef1eaa601354dcc5a /gpu/command_buffer/common/buffer.h
parentf645be519c2a95fb0540c62d5f957527ac9e9d6f (diff)
downloadchromium_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.h9
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>;