| Index: ppapi/shared_impl/var.cc
|
| ===================================================================
|
| --- ppapi/shared_impl/var.cc (revision 96002)
|
| +++ ppapi/shared_impl/var.cc (working copy)
|
| @@ -11,6 +11,7 @@
|
| #include "base/string_util.h"
|
| #include "ppapi/c/pp_var.h"
|
| #include "ppapi/shared_impl/tracker_base.h"
|
| +#include "ppapi/shared_impl/var_tracker.h"
|
|
|
| namespace ppapi {
|
|
|
| @@ -60,22 +61,6 @@
|
| }
|
| }
|
|
|
| -// static
|
| -void Var::PluginAddRefPPVar(PP_Var var) {
|
| - if (var.type == PP_VARTYPE_STRING || var.type == PP_VARTYPE_OBJECT) {
|
| - if (!TrackerBase::Get()->AddRefVar(static_cast<int32>(var.value.as_id)))
|
| - DLOG(WARNING) << "AddRefVar()ing a nonexistent string/object var.";
|
| - }
|
| -}
|
| -
|
| -// static
|
| -void Var::PluginReleasePPVar(PP_Var var) {
|
| - if (var.type == PP_VARTYPE_STRING || var.type == PP_VARTYPE_OBJECT) {
|
| - if (!TrackerBase::Get()->UnrefVar(static_cast<int32>(var.value.as_id)))
|
| - DLOG(WARNING) << "ReleaseVar()ing a nonexistent string/object var.";
|
| - }
|
| -}
|
| -
|
| StringVar* Var::AsStringVar() {
|
| return NULL;
|
| }
|
| @@ -84,12 +69,16 @@
|
| return NULL;
|
| }
|
|
|
| +ProxyObjectVar* Var::AsProxyObjectVar() {
|
| + return NULL;
|
| +}
|
| +
|
| int32 Var::GetExistingVarID() const {
|
| return var_id_;
|
| }
|
|
|
| int32 Var::GetOrCreateVarID() {
|
| - TrackerBase* tracker = TrackerBase::Get();
|
| + VarTracker* tracker = TrackerBase::Get()->GetVarTracker();
|
| if (var_id_) {
|
| if (!tracker->AddRefVar(var_id_))
|
| return 0;
|
| @@ -101,6 +90,11 @@
|
| return var_id_;
|
| }
|
|
|
| +void Var::AssignVarID(int32 id) {
|
| + DCHECK(!var_id_); // Must not have already been generated.
|
| + var_id_ = id;
|
| +}
|
| +
|
| // StringVar -------------------------------------------------------------------
|
|
|
| StringVar::StringVar(PP_Module module, const char* str, uint32 len)
|
| @@ -126,6 +120,10 @@
|
| return result;
|
| }
|
|
|
| +PP_VarType StringVar::GetType() const {
|
| + return PP_VARTYPE_STRING;
|
| +}
|
| +
|
| // static
|
| PP_Var StringVar::StringToPPVar(PP_Module module, const std::string& var) {
|
| return StringToPPVar(module, var.c_str(), var.size());
|
| @@ -145,7 +143,7 @@
|
| if (var.type != PP_VARTYPE_STRING)
|
| return scoped_refptr<StringVar>();
|
| scoped_refptr<Var> var_object(
|
| - TrackerBase::Get()->GetVar(static_cast<int32>(var.value.as_id)));
|
| + TrackerBase::Get()->GetVarTracker()->GetVar(var));
|
| if (!var_object)
|
| return scoped_refptr<StringVar>();
|
| return scoped_refptr<StringVar>(var_object->AsStringVar());
|
|
|