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 | ec122eb46b6ce8f6e8bb3e08c34e575de666cd3e (patch) | |
tree | c5d6d30e2802f8e9671731cc16095c6040358f09 /graphics/java/android/renderscript/ProgramVertexFixedFunction.java | |
parent | 47b8adec3904535c8d8ce2b6e42ecd736f2d90ce (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 'graphics/java/android/renderscript/ProgramVertexFixedFunction.java')
0 files changed, 0 insertions, 0 deletions