summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/var_tracker.cc
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 05:04:06 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 05:04:06 +0000
commitc6d03e02eccce9fc604f4803d8a073dbe29d5981 (patch)
tree3605596628ae6edbbf1ba04d6b891ba7b242fd87 /ppapi/shared_impl/var_tracker.cc
parenta51791c33d2dd127d273a8ea0a86d8be983665b8 (diff)
downloadchromium_src-c6d03e02eccce9fc604f4803d8a073dbe29d5981.zip
chromium_src-c6d03e02eccce9fc604f4803d8a073dbe29d5981.tar.gz
chromium_src-c6d03e02eccce9fc604f4803d8a073dbe29d5981.tar.bz2
Reland; Pepper: Var keeps invalid var_id if VarTracker release it and there is another reference
When VarTracker remove PP_Var from VarMap, it release its Var object if needed, but never reset var_id stored in Var object. Then, if Var's reference count is not 1, Var continue to exist with invalid var_id until the last reference is released. BUG=87310 TEST=ui_tests, browser_tests, nacl_integration Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=114384 Review URL: http://codereview.chromium.org/8872065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl/var_tracker.cc')
-rw-r--r--ppapi/shared_impl/var_tracker.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/ppapi/shared_impl/var_tracker.cc b/ppapi/shared_impl/var_tracker.cc
index 7f7157e..d95a759 100644
--- a/ppapi/shared_impl/var_tracker.cc
+++ b/ppapi/shared_impl/var_tracker.cc
@@ -100,6 +100,7 @@ bool VarTracker::ReleaseVar(int32 var_id) {
} else {
// All other var types can just be released.
DCHECK(info.track_with_no_reference_count == 0);
+ info.var->ResetVarID();
live_vars_.erase(found);
}
}