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

Unified Diff: ppapi/shared_impl/var.cc

Issue 7578001: Unify var tracking between webkit and the proxy. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/shared_impl/var.h ('k') | ppapi/shared_impl/var_tracker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « ppapi/shared_impl/var.h ('k') | ppapi/shared_impl/var_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698