diff options
| author | Mathias Agopian <mathias@google.com> | 2011-02-16 20:23:43 -0800 | 
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2011-02-23 22:21:41 -0800 | 
| commit | f14a1046e7242222300bbe88d530c3b531fc7678 (patch) | |
| tree | 0412bc19f065c72f52c4c2bfa6ec7f71242dc47f /opengl/tests/gl_basic/gl_basic.cpp | |
| parent | 4e9e63740031b04cd3c8492e13c715538f4d04b5 (diff) | |
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
Diffstat (limited to 'opengl/tests/gl_basic/gl_basic.cpp')
0 files changed, 0 insertions, 0 deletions
