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

Unified Diff: ppapi/shared_impl/ppb_var_shared.cc

Issue 8930010: Implement in-process PPB_VarArrayBuffer_Dev. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 9 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/shared_impl/ppb_var_shared.h ('k') | ppapi/shared_impl/test_globals.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/shared_impl/ppb_var_shared.cc
diff --git a/ppapi/shared_impl/ppb_var_shared.cc b/ppapi/shared_impl/ppb_var_shared.cc
index c548ba7752ec294afa44be115b90cacfca8d1b0d..554981827d56f085918af8d4a03ad24036207b0a 100644
--- a/ppapi/shared_impl/ppb_var_shared.cc
+++ b/ppapi/shared_impl/ppb_var_shared.cc
@@ -6,6 +6,7 @@
#include <limits>
+#include "ppapi/c/dev/ppb_var_array_buffer_dev.h"
#include "ppapi/c/ppb_var.h"
#include "ppapi/c/pp_var.h"
#include "ppapi/shared_impl/ppapi_globals.h"
@@ -17,6 +18,10 @@ using ppapi::PpapiGlobals;
using ppapi::StringVar;
namespace ppapi {
+namespace {
+
+
+// PPB_Var methods -------------------------------------------------------------
void AddRefVar(PP_Var var) {
ppapi::ProxyAutoLock lock;
@@ -48,7 +53,6 @@ const char* VarToUtf8(PP_Var var, uint32_t* len) {
return NULL;
}
-namespace {
const PPB_Var var_interface = {
&AddRefVar,
&ReleaseVar,
@@ -62,6 +66,35 @@ const PPB_Var_1_0 var_interface1_0 = {
&VarFromUtf8_1_0,
&VarToUtf8
};
+
+
+// PPB_VarArrayBuffer_Dev methods ----------------------------------------------
+
+PP_Var CreateArrayBufferVar(uint32_t size_in_bytes) {
+ return PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
+ size_in_bytes);
+}
+
+uint32_t ByteLength(struct PP_Var array) {
+ ArrayBufferVar* buffer = ArrayBufferVar::FromPPVar(array);
+ if (!buffer)
+ return 0;
+ return buffer->ByteLength();
+}
+
+void* Map(struct PP_Var array) {
+ ArrayBufferVar* buffer = ArrayBufferVar::FromPPVar(array);
+ if (!buffer)
+ return NULL;
+ return buffer->Map();
+}
+
+const PPB_VarArrayBuffer_Dev var_arraybuffer_interface = {
+ &CreateArrayBufferVar,
+ &ByteLength,
+ &Map
+};
+
} // namespace
// static
@@ -74,5 +107,10 @@ const PPB_Var_1_0* PPB_Var_Shared::GetVarInterface1_0() {
return &var_interface1_0;
}
+// static
+const PPB_VarArrayBuffer_Dev* PPB_Var_Shared::GetVarArrayBufferInterface() {
+ return &var_arraybuffer_interface;
+}
+
} // namespace ppapi
« no previous file with comments | « ppapi/shared_impl/ppb_var_shared.h ('k') | ppapi/shared_impl/test_globals.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698