diff options
Diffstat (limited to 'ppapi/shared_impl/var.cc')
-rw-r--r-- | ppapi/shared_impl/var.cc | 55 |
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 |