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


CrOS-Libchrome-Original-Commit: e4a638f76ada2aaacd46f0adb2037e28dffc3648
1 file changed
tree: d20b7a69229b65266487250c76c9f7f4fea088f7
  1. base/
  2. build/
  3. dbus/
  4. ipc/
  5. testing/
  6. third_party/