Go to file
Mathias Agopian f14a1046e7 Fix some issues with RefBase debugging.
First slipt sp<> out of RefBase into StrongPointer.h so it can be reused
more easily and to make it clear that it doesn't require RefBase.

Note: the rest of the change only affects the system when DEBUG_REFS is enabled.

The main problem we fix here is that the owner id associated with each
reference could get out of date when a sp<> or wp<> was moved, for
instance when they're used in a Vector< >.

We fix this issue by calling into RefBase::moveReferences from
a template specialization for sp<TYPE> and wp<TYPE> of the
type helpers. RefBase::moveReferences() has then a chance to
update the owner ids.

There is a little bit of trickery to implement this generically in
RefBase, where we need to use a templatized functor that can turn
a sp<TYPE>* casted to a void* into a RefBase*.

Introduced a new debug option DEBUG_REFS_FATAL_SANITY_CHECKS
currently set to 0 by default as there seem to be an issue
with sp<ANativeWindow> which trips the sanity checks.

Change-Id: I4825b21c8ec47d4a0ef35d760760ae0c9cdfbd7f
2011-02-23 22:21:41 -08:00
cmds
include Fix some issues with RefBase debugging. 2011-02-23 22:21:41 -08:00
libs Fix some issues with RefBase debugging. 2011-02-23 22:21:41 -08:00
opengl Clean up use of HAVE_ANDROID_OS 2011-02-16 10:56:32 -08:00
services/surfaceflinger Merge "Correctly handle translucency of device-specific pixel formats" 2011-02-23 14:10:04 -08:00
vpn Make VpnService synchronous API. 2011-01-20 12:51:43 +08:00
MODULE_LICENSE_APACHE2
NOTICE