Ban kRefCountPreference override

base::RefCount<T> referes T::kRefCountPreference, while base::AdoptRef()
and base::MakeRefCounted() refer kRefCountPreference on the most derived
subclass. They may mismatch if a subclass of T overrides kRefCountPreference,
and that confuses the reference counting.

This CL adds a static_assert to disallow kRefCountPreference override on
subclasses of ref counted classes.

Change-Id: I3e80eb88dbf4e8772f362281034c240fbe48bcd1
Reviewed-on: https://chromium-review.googlesource.com/778620
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518219}

CrOS-Libchrome-Original-Commit: 1fe4112ce1462a9c011f19a383149c9674bc8999
1 file changed
tree: ec0909b292b2f33bce443ca38def66106b18a795
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/