summaryrefslogtreecommitdiffstats
path: root/base/event_recorder_win.cc
diff options
context:
space:
mode:
authortimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-21 19:46:00 +0000
committertimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-21 19:46:00 +0000
commite4a638f76ada2aaacd46f0adb2037e28dffc3648 (patch)
treeb7f298e554610b3086d225791b29a7309d712ca6 /base/event_recorder_win.cc
parent995620de09bfbac3354b8bc2073bd4c68e52d8f7 (diff)
downloadchromium_src-e4a638f76ada2aaacd46f0adb2037e28dffc3648.zip
chromium_src-e4a638f76ada2aaacd46f0adb2037e28dffc3648.tar.gz
chromium_src-e4a638f76ada2aaacd46f0adb2037e28dffc3648.tar.bz2
Make the placement-new buffer in LazyInstance<Type> aligned.
Before, the LazyInstance::buf_ was 4-byte aligned on x64, which is wrong. WHY?! I thought buf_ is the first member of LazyInstance?! NO! LazyInstance inherits LazyInstanceHelper, sizeof(LIH) = 4. Then, buf_ is given to placement new. As a result, the LazyInstance<Type> instances are all 4-byte aligned on x64. This may break some stuff like SSE-based optimizations assuming the instance is 8-bytes aligned (fair assumption). Also, if Type contains a bunch of std::vector/hash_map's, their pointers occupy two half-words and Valgrind doesn't traverse to their data, reporting a false leak. BUG=64930 Review URL: http://codereview.chromium.org/8366041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106763 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/event_recorder_win.cc')
0 files changed, 0 insertions, 0 deletions