summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-02 03:37:59 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-02 03:37:59 +0000
commita5717f0344b6156f816e5d3c564c0cc6693f4e8e (patch)
treedab34d67b2c9e59b0e85411893f21080e3a4d717
parenta1e5865d238c6c2a69f8321aea65bdecf840df18 (diff)
downloadchromium_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.cc6
-rw-r--r--ppapi/shared_impl/var_tracker.cc13
-rw-r--r--ppapi/shared_impl/var_tracker.h6
-rw-r--r--ppapi/tests/test_case.h2
-rw-r--r--ppapi/tests/test_websocket.cc1
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();
}