diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-22 08:35:52 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-22 08:35:52 +0000 |
commit | a732cec70e194fb770c0eee12430fcc416843364 (patch) | |
tree | 7ceafca7e48d4a5da68ef28f4b77f1b7ba21c2f3 /ppapi/shared_impl | |
parent | 02871872970e86b2255049ebe66c7f54ef50c721 (diff) | |
download | chromium_src-a732cec70e194fb770c0eee12430fcc416843364.zip chromium_src-a732cec70e194fb770c0eee12430fcc416843364.tar.gz chromium_src-a732cec70e194fb770c0eee12430fcc416843364.tar.bz2 |
Add GetLiveVars to PPB_Testing_Dev. Fix leaks it uncovered.
BUG=108308,108314
TEST=
Review URL: http://codereview.chromium.org/8982006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115503 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl')
-rw-r--r-- | ppapi/shared_impl/var_tracker.cc | 11 | ||||
-rw-r--r-- | ppapi/shared_impl/var_tracker.h | 8 |
2 files changed, 19 insertions, 0 deletions
diff --git a/ppapi/shared_impl/var_tracker.cc b/ppapi/shared_impl/var_tracker.cc index 287e7b1..58c715c 100644 --- a/ppapi/shared_impl/var_tracker.cc +++ b/ppapi/shared_impl/var_tracker.cc @@ -149,6 +149,17 @@ PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes) { return array_buffer->GetPPVar(); } +std::vector<PP_Var> VarTracker::GetLiveVars() { + std::vector<PP_Var> var_vector; + var_vector.reserve(live_vars_.size()); + for (VarMap::const_iterator iter = live_vars_.begin(); + iter != live_vars_.end(); + ++iter) { + var_vector.push_back(iter->second.var->GetPPVar()); + } + return var_vector; +} + void VarTracker::TrackedObjectGettingOneRef(VarMap::const_iterator obj) { // Anybody using tracked objects should override this. NOTREACHED(); diff --git a/ppapi/shared_impl/var_tracker.h b/ppapi/shared_impl/var_tracker.h index a2debe0..4dc8a2d 100644 --- a/ppapi/shared_impl/var_tracker.h +++ b/ppapi/shared_impl/var_tracker.h @@ -5,6 +5,8 @@ #ifndef PPAPI_SHARED_IMPL_VAR_TRACKER_H_ #define PPAPI_SHARED_IMPL_VAR_TRACKER_H_ +#include <vector> + #include "base/basictypes.h" #include "base/hash_tables.h" #include "base/memory/ref_counted.h" @@ -60,6 +62,12 @@ class PPAPI_SHARED_EXPORT VarTracker { // that references it and has an initial reference-count of 1. PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes); + // Return a vector containing all PP_Vars that are in the tracker. This is + // to help implement PPB_Testing_Dev.GetLiveVars and should generally not be + // used in production code. The PP_Vars are returned in no particular order, + // and their reference counts are unaffected. + std::vector<PP_Var> GetLiveVars(); + protected: struct VarInfo { VarInfo(); |