diff options
author | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 17:40:26 +0000 |
---|---|---|
committer | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 17:40:26 +0000 |
commit | d44583b743d1e556bad4907c05ebd5cc6518b63d (patch) | |
tree | 2e7ffe367a113692c1e29e73228cb7280b1b4296 | |
parent | 783551d92c4d26cc73f1ca37e078000412d2ad24 (diff) | |
download | chromium_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.cc | 8 |
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)); } } } |