summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/mock_render_process_host.cc
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-21 23:18:28 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-21 23:18:28 +0000
commit4c603f01f34867e3b908a1834e5a60b6f8a21924 (patch)
treec067430b8faa97a3c384e6cbdabffd00882acbc9 /chrome/browser/renderer_host/mock_render_process_host.cc
parent9631c05bb39ed5865e77b79c3550ba696b388a5c (diff)
downloadchromium_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.cc9
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.