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

Side by Side Diff: ppapi/cpp/dev/var_array_buffer_dev.cc

Issue 9107046: PPAPI: Move PPB_ArrayBuffer out of Dev. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix gyp file, use 1_0 Created 8 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
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ppapi/cpp/dev/var_array_buffer_dev.h"
6
7 #include "ppapi/c/dev/ppb_var_array_buffer_dev.h"
8 #include "ppapi/cpp/logging.h"
9 #include "ppapi/cpp/module_impl.h"
10
11 namespace pp {
12
13 namespace {
14
15 template <> const char* interface_name<PPB_VarArrayBuffer_Dev>() {
16 return PPB_VAR_ARRAY_BUFFER_DEV_INTERFACE;
17 }
18
19 } // namespace
20
21 VarArrayBuffer_Dev::VarArrayBuffer_Dev(const Var& var)
22 : Var(var), buffer_(NULL) {
23 if (var.is_array_buffer()) {
24 buffer_ = Map();
25 } else {
26 PP_NOTREACHED();
27 var_ = PP_MakeNull();
28 }
29 }
30
31 VarArrayBuffer_Dev::VarArrayBuffer_Dev(uint32_t size_in_bytes)
32 : buffer_(NULL) {
33 if (has_interface<PPB_VarArrayBuffer_Dev>()) {
34 var_ = get_interface<PPB_VarArrayBuffer_Dev>()->Create(size_in_bytes);
35 needs_release_ = true;
36 buffer_ = Map();
37 } else {
38 PP_NOTREACHED();
39 var_ = PP_MakeNull();
40 }
41 }
42
43 uint32_t VarArrayBuffer_Dev::ByteLength() const {
44 if (has_interface<PPB_VarArrayBuffer_Dev>()) {
45 return get_interface<PPB_VarArrayBuffer_Dev>()->ByteLength(var_);
46 }
47 PP_NOTREACHED();
48 return 0;
49 }
50
51 const void* VarArrayBuffer_Dev::Map() const {
52 return const_cast<VarArrayBuffer_Dev*>(this)->Map();
53 }
54
55 void* VarArrayBuffer_Dev::Map() {
56 // TODO(dmichael): This is not thread-safe.
57 if (buffer_)
58 return buffer_;
59 if (has_interface<PPB_VarArrayBuffer_Dev>()) {
60 buffer_ = get_interface<PPB_VarArrayBuffer_Dev>()->Map(var_);
61 return buffer_;
62 }
63 PP_NOTREACHED();
64 return 0;
65 }
66
67 } // namespace pp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698