summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/var.cc
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 21:22:31 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 21:22:31 +0000
commit8cc26a4c78767feaf47fa94af34471d63e3596e5 (patch)
tree24399869b26449df2a6a838796941c984106f4b2 /ppapi/shared_impl/var.cc
parentb40a1f1acb4d3fa0c56a3706dd47a2ca8d471834 (diff)
downloadchromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.zip
chromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.tar.gz
chromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.tar.bz2
Implement in-process PPB_VarArrayBuffer_Dev.
+tony TBR for webkit/glue/webkit_glue.gypi BUG=103435 TEST=N/A TBR=tony Review URL: http://codereview.chromium.org/8930010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114700 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl/var.cc')
-rw-r--r--ppapi/shared_impl/var.cc55
1 files changed, 43 insertions, 12 deletions
diff --git a/ppapi/shared_impl/var.cc b/ppapi/shared_impl/var.cc
index 3bec5ce..60d439b 100644
--- a/ppapi/shared_impl/var.cc
+++ b/ppapi/shared_impl/var.cc
@@ -65,6 +65,10 @@ StringVar* Var::AsStringVar() {
return NULL;
}
+ArrayBufferVar* Var::AsArrayBufferVar() {
+ return NULL;
+}
+
NPObjectVar* Var::AsNPObjectVar() {
return NULL;
}
@@ -73,6 +77,18 @@ ProxyObjectVar* Var::AsProxyObjectVar() {
return NULL;
}
+PP_Var Var::GetPPVar() {
+ int32 id = GetOrCreateVarID();
+ if (!id)
+ return PP_MakeNull();
+
+ PP_Var result;
+ result.type = GetType();
+ result.padding = 0;
+ result.value.as_id = id;
+ return result;
+}
+
int32 Var::GetExistingVarID() const {
return var_id_;
}
@@ -112,18 +128,6 @@ StringVar* StringVar::AsStringVar() {
return this;
}
-PP_Var StringVar::GetPPVar() {
- int32 id = GetOrCreateVarID();
- if (!id)
- return PP_MakeNull();
-
- PP_Var result;
- result.type = PP_VARTYPE_STRING;
- result.padding = 0;
- result.value.as_id = id;
- return result;
-}
-
PP_VarType StringVar::GetType() const {
return PP_VARTYPE_STRING;
}
@@ -152,5 +156,32 @@ StringVar* StringVar::FromPPVar(PP_Var var) {
return var_object->AsStringVar();
}
+// ArrayBufferVar --------------------------------------------------------------
+
+ArrayBufferVar::ArrayBufferVar() {
+}
+
+ArrayBufferVar::~ArrayBufferVar() {
+}
+
+ArrayBufferVar* ArrayBufferVar::AsArrayBufferVar() {
+ return this;
+}
+
+PP_VarType ArrayBufferVar::GetType() const {
+ return PP_VARTYPE_ARRAY_BUFFER;
+}
+
+// static
+ArrayBufferVar* ArrayBufferVar::FromPPVar(PP_Var var) {
+ if (var.type != PP_VARTYPE_ARRAY_BUFFER)
+ return NULL;
+ scoped_refptr<Var> var_object(
+ PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
+ if (!var_object)
+ return NULL;
+ return var_object->AsArrayBufferVar();
+}
+
} // namespace ppapi