summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-18 07:19:27 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-18 07:19:27 +0000
commit15f32e949e968ade3868130b942da5c8f2827a76 (patch)
treee1429e1d129cdc2e41a23c014bc2cd5451f20c27
parent0fe2764130ba3643771faba0637bd9db633c80a0 (diff)
downloadchromium_src-15f32e949e968ade3868130b942da5c8f2827a76.zip
chromium_src-15f32e949e968ade3868130b942da5c8f2827a76.tar.gz
chromium_src-15f32e949e968ade3868130b942da5c8f2827a76.tar.bz2
Disable FPO throughout client_socket_pool_base.cc.
This will help track down the origin of a use-after-free bug. BUG=109876 Review URL: http://codereview.chromium.org/9240036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118074 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--net/socket/client_socket_pool_base.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index a19bc2f..113985a 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -22,6 +22,14 @@
using base::TimeDelta;
+// Disable FPO for all the functions in this file. This is to help track down
+// http://crbug.com/109876. With FPO enabled, the stacktrace capture is
+// unreliable, and we can't see the specific deletion point of the Group.
+// TODO(eroman): Remove it when done investigating.
+#if defined(COMPILER_MSVC)
+#pragma optimize("y", off)
+#endif
+
namespace {
// Indicate whether we should enable idle socket cleanup timer. When timer is
@@ -1250,3 +1258,8 @@ void ClientSocketPoolBaseHelper::Group::RemoveAllJobs() {
} // namespace internal
} // namespace net
+
+// Restore default optimization settings.
+#if defined(COMPILER_MSVC)
+#pragma optimize("", on)
+#endif