diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-02 03:37:59 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-02 03:37:59 +0000 |
commit | a5717f0344b6156f816e5d3c564c0cc6693f4e8e (patch) | |
tree | dab34d67b2c9e59b0e85411893f21080e3a4d717 | |
parent | a1e5865d238c6c2a69f8321aea65bdecf840df18 (diff) | |
download | chromium_src-a5717f0344b6156f816e5d3c564c0cc6693f4e8e.zip chromium_src-a5717f0344b6156f816e5d3c564c0cc6693f4e8e.tar.gz chromium_src-a5717f0344b6156f816e5d3c564c0cc6693f4e8e.tar.bz2 |
Revert 180190
Windows tests are still failing:
http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%282%29/builds/12476/steps/browser_tests/logs/stdio
http://build.chromium.org/p/chromium.win/buildstatus?builder=XP%20Tests%20%28dbg%29%282%29&number=26342
> PPAPI: Fix WebSocket Var ref leak receiving binary
>
> BUG=173503
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=180093
>
> Reopened; was reverted here:
> https://src.chromium.org/viewvc/chrome?view=rev&revision=180105
> Tests were failing because the IRT was not rebuilt due to a gyp problem, which was fixed here:
> https://src.chromium.org/viewvc/chrome?view=rev&revision=180182
>
> Review URL: https://codereview.chromium.org/12096099
TBR=dmichael@chromium.org
Review URL: https://codereview.chromium.org/12192002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180239 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ppapi/proxy/websocket_resource.cc | 6 | ||||
-rw-r--r-- | ppapi/shared_impl/var_tracker.cc | 13 | ||||
-rw-r--r-- | ppapi/shared_impl/var_tracker.h | 6 | ||||
-rw-r--r-- | ppapi/tests/test_case.h | 2 | ||||
-rw-r--r-- | ppapi/tests/test_websocket.cc | 1 |
5 files changed, 8 insertions, 20 deletions
diff --git a/ppapi/proxy/websocket_resource.cc b/ppapi/proxy/websocket_resource.cc index 7439826..c45de90 100644 --- a/ppapi/proxy/websocket_resource.cc +++ b/ppapi/proxy/websocket_resource.cc @@ -423,10 +423,10 @@ void WebSocketResource::OnPluginMsgReceiveBinaryReply( return; // Append received data to queue. - scoped_refptr<Var> message_var( - PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferVar( + scoped_refptr<Var> message_var(ArrayBufferVar::FromPPVar( + PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar( message.size(), - &message.front())); + &message.front()))); received_messages_.push(message_var); if (!TrackedCallback::IsPending(receive_callback_)) diff --git a/ppapi/shared_impl/var_tracker.cc b/ppapi/shared_impl/var_tracker.cc index d515cf7..8214a30 100644 --- a/ppapi/shared_impl/var_tracker.cc +++ b/ppapi/shared_impl/var_tracker.cc @@ -186,18 +186,13 @@ PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes) { PP_Var VarTracker::MakeArrayBufferPPVar(uint32 size_in_bytes, const void* data) { - ArrayBufferVar* array_buffer = MakeArrayBufferVar(size_in_bytes, data); - return array_buffer ? array_buffer->GetPPVar() : PP_MakeNull(); -} - -ArrayBufferVar* VarTracker::MakeArrayBufferVar(uint32 size_in_bytes, - const void* data) { DCHECK(CalledOnValidThread()); - ArrayBufferVar* array_buffer(CreateArrayBuffer(size_in_bytes)); + + scoped_refptr<ArrayBufferVar> array_buffer(CreateArrayBuffer(size_in_bytes)); if (!array_buffer) - return NULL; + return PP_MakeNull(); memcpy(array_buffer->Map(), data, size_in_bytes); - return array_buffer; + return array_buffer->GetPPVar(); } std::vector<PP_Var> VarTracker::GetLiveVars() { diff --git a/ppapi/shared_impl/var_tracker.h b/ppapi/shared_impl/var_tracker.h index 1d0c0d6..b873250 100644 --- a/ppapi/shared_impl/var_tracker.h +++ b/ppapi/shared_impl/var_tracker.h @@ -73,12 +73,6 @@ class PPAPI_SHARED_EXPORT VarTracker // Same as above, but copy the contents of |data| in to the new array buffer. PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes, const void* data); - // Create an ArrayBuffer and copy the contents of |data| in to it. The - // returned object has 0 reference count in the tracker, and like all - // RefCounted objects, has a 0 initial internal reference count. (You should - // usually immediately put this in a scoped_refptr). - ArrayBufferVar* MakeArrayBufferVar(uint32 size_in_bytes, const void* data); - // 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, diff --git a/ppapi/tests/test_case.h b/ppapi/tests/test_case.h index b63309f..b06f941 100644 --- a/ppapi/tests/test_case.h +++ b/ppapi/tests/test_case.h @@ -313,7 +313,7 @@ class TestCaseFactory { instance_->pp_instance()) != objects) \ error_message = MakeFailureMessage(__FILE__, __LINE__, \ "reference leak check"); \ - instance_->LogTest(#name, CheckResourcesAndVars(error_message)); \ + instance_->LogTest(#name, error_message); \ } // Helper macros for checking values in tests, and returning a location diff --git a/ppapi/tests/test_websocket.cc b/ppapi/tests/test_websocket.cc index acbad3e..d5dc486 100644 --- a/ppapi/tests/test_websocket.cc +++ b/ppapi/tests/test_websocket.cc @@ -464,7 +464,6 @@ std::string TestWebSocket::TestValidConnect() { PP_Var extensions = websocket_interface_->GetExtensions(ws); ASSERT_TRUE(AreEqualWithString(extensions, "")); core_interface_->ReleaseResource(ws); - ReleaseVar(extensions); PASS(); } |