summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-17 17:40:26 +0000
committerbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-17 17:40:26 +0000
commitd44583b743d1e556bad4907c05ebd5cc6518b63d (patch)
tree2e7ffe367a113692c1e29e73228cb7280b1b4296
parent783551d92c4d26cc73f1ca37e078000412d2ad24 (diff)
downloadchromium_src-d44583b743d1e556bad4907c05ebd5cc6518b63d.zip
chromium_src-d44583b743d1e556bad4907c05ebd5cc6518b63d.tar.gz
chromium_src-d44583b743d1e556bad4907c05ebd5cc6518b63d.tar.bz2
Don't leak input event resources. The refcounting was messed up, this patch now uses a scoped resource ID for this purpose.
TEST=manual BUG=92971 Review URL: http://codereview.chromium.org/7655001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97155 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/plugins/ppapi/ppapi_plugin_instance.cc8
1 files changed, 2 insertions, 6 deletions
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
index 4af2829..a21c13a 100644
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
@@ -454,7 +454,6 @@ bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event,
CreateInputEventData(event, &events);
// Each input event may generate more than one PP_InputEvent.
- ResourceTracker* tracker = ResourceTracker::Get();
for (size_t i = 0; i < events.size(); i++) {
if (filtered_input_event_mask_ & event_class)
events[i].is_filtered = true;
@@ -462,13 +461,10 @@ bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event,
rv = true; // Unfiltered events are assumed to be handled.
scoped_refptr<PPB_InputEvent_Impl> event_resource(
new PPB_InputEvent_Impl(this, events[i]));
- PP_Resource resource = event_resource->GetReference();
+ Resource::ScopedResourceId resource(event_resource);
rv |= PP_ToBool(plugin_input_event_interface_->HandleInputEvent(
- pp_instance(), event_resource->GetReference()));
-
- // Release the reference we took above.
- tracker->UnrefResource(resource);
+ pp_instance(), resource.id));
}
}
}