diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-21 23:18:28 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-21 23:18:28 +0000 |
commit | 4c603f01f34867e3b908a1834e5a60b6f8a21924 (patch) | |
tree | c067430b8faa97a3c384e6cbdabffd00882acbc9 /chrome/browser/renderer_host/mock_render_process_host.cc | |
parent | 9631c05bb39ed5865e77b79c3550ba696b388a5c (diff) | |
download | chromium_src-4c603f01f34867e3b908a1834e5a60b6f8a21924.zip chromium_src-4c603f01f34867e3b908a1834e5a60b6f8a21924.tar.gz chromium_src-4c603f01f34867e3b908a1834e5a60b6f8a21924.tar.bz2 |
Purify bot fix
Purify was upset about a memory allocation issue in unit_tests where
HANDLE values were getting reused.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10154 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/mock_render_process_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/mock_render_process_host.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/chrome/browser/renderer_host/mock_render_process_host.cc b/chrome/browser/renderer_host/mock_render_process_host.cc index f6aec46..b25f3ad 100644 --- a/chrome/browser/renderer_host/mock_render_process_host.cc +++ b/chrome/browser/renderer_host/mock_render_process_host.cc @@ -60,10 +60,13 @@ bool MockRenderProcessHost::Send(IPC::Message* msg) { } TransportDIB* MockRenderProcessHost::GetTransportDIB(TransportDIB::Id dib_id) { - delete transport_dib_; - + if (transport_dib_) + return transport_dib_; #if defined(OS_WIN) - transport_dib_ = TransportDIB::Map(dib_id.handle); + HANDLE duped; + DuplicateHandle(GetCurrentProcess(), dib_id.handle, GetCurrentProcess(), + &duped, 0, TRUE, DUPLICATE_SAME_ACCESS); + transport_dib_ = TransportDIB::Map(duped); #elif defined(OS_MACOSX) // On Mac, TransportDIBs are always created in the browser, so we cannot map // one from a dib_id. |