Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: mojo/public/bindings/lib/buffer.cc

Issue 134253004: Mojo: AsyncWaiter and mojo/public/environment (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add missing files Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/public/bindings/lib/buffer.h" 5 #include "mojo/public/bindings/lib/buffer.h"
6 6
7 #include <assert.h> 7 #include <assert.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <string.h> 9 #include <string.h>
10 10
11 #include <algorithm> 11 #include <algorithm>
12 12
13 #include "mojo/public/bindings/lib/bindings_serialization.h" 13 #include "mojo/public/bindings/lib/bindings_serialization.h"
14 #include "mojo/public/bindings/lib/bindings_support.h" 14 #include "mojo/public/environment/buffer_tls.h"
15 15
16 // Scrub memory in debug builds to help catch use-after-free bugs. 16 // Scrub memory in debug builds to help catch use-after-free bugs.
17 #ifdef NDEBUG 17 #ifdef NDEBUG
18 #define DEBUG_SCRUB(address, size) (void) (address), (void) (size) 18 #define DEBUG_SCRUB(address, size) (void) (address), (void) (size)
19 #else 19 #else
20 #define DEBUG_SCRUB(address, size) memset(address, 0xCD, size) 20 #define DEBUG_SCRUB(address, size) memset(address, 0xCD, size)
21 #endif 21 #endif
22 22
23 namespace mojo { 23 namespace mojo {
24 24
25 //----------------------------------------------------------------------------- 25 //-----------------------------------------------------------------------------
26 26
27 Buffer::Buffer() { 27 Buffer::Buffer() {
28 previous_ = BindingsSupport::Get()->SetCurrentBuffer(this); 28 previous_ = internal::SetCurrentBuffer(this);
29 } 29 }
30 30
31 Buffer::~Buffer() { 31 Buffer::~Buffer() {
32 Buffer* buf MOJO_ALLOW_UNUSED = 32 Buffer* buf MOJO_ALLOW_UNUSED = internal::SetCurrentBuffer(previous_);
33 BindingsSupport::Get()->SetCurrentBuffer(previous_);
34 assert(buf == this); 33 assert(buf == this);
35 } 34 }
36 35
37 Buffer* Buffer::current() { 36 Buffer* Buffer::current() {
38 return BindingsSupport::Get()->GetCurrentBuffer(); 37 return internal::GetCurrentBuffer();
39 } 38 }
40 39
41 //----------------------------------------------------------------------------- 40 //-----------------------------------------------------------------------------
42 41
43 namespace internal { 42 namespace internal {
44 43
45 ScratchBuffer::ScratchBuffer() 44 ScratchBuffer::ScratchBuffer()
46 : overflow_(NULL) { 45 : overflow_(NULL) {
47 fixed_.next = NULL; 46 fixed_.next = NULL;
48 fixed_.cursor = fixed_data_; 47 fixed_.cursor = fixed_data_;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 void* FixedBuffer::Leak() { 146 void* FixedBuffer::Leak() {
148 char* ptr = ptr_; 147 char* ptr = ptr_;
149 ptr_ = NULL; 148 ptr_ = NULL;
150 cursor_ = 0; 149 cursor_ = 0;
151 size_ = 0; 150 size_ = 0;
152 return ptr; 151 return ptr;
153 } 152 }
154 153
155 } // namespace internal 154 } // namespace internal
156 } // namespace mojo 155 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698