summaryrefslogtreecommitdiffstats
path: root/include/utils/RefBase.h
Commit message (Collapse)AuthorAgeFilesLines
* utils: fix warnings for unused parametersIgor Murashkin2012-12-051-2/+2
| | | | Change-Id: Ibfb755a30ba2923669060fe0aed019beecbe38a1
* Add traits to common utils data structures.Jeff Brown2012-03-161-0/+1
| | | | | | | | | | | Many of our basic data structures are trivially movable using memcpy() even if they are not trivially constructable, destructable or copyable. It's worth taking advantage of this *ahem* trait. Adding trivial_move_trait to String16 reduces appt running time on frameworks/base/core/res by 40%! Change-Id: I630a1a027e2d0ded96856e4ca042ea82906289fe
* fix a memory leak and memory corruption in RefBaseMathias Agopian2011-08-111-17/+7
| | | | | | | | | | | | | | | | | we would leak a weakref_impl if a RefBase was never incWeak()'ed. there was also a dangling pointer that would cause memory corruption and double-delete when a custom destroyer was used to delay the execution of ~RefBase. it turns out that the custom destroyer feature caused most of the problems, so it's now gone. The only client was SurfaceFlinger who now handles things on its own. RefBase is essentially back its "gingerbread" state, but the code was slightly cleaned-up. Bug: 5151207, 5084978 Change-Id: Id6ef1d707f96d96366f75068f77b30e0ce2722a5
* may fix build on some version of gccMathias Agopian2011-06-141-0/+1
| | | | Change-Id: Ia88787c0432ec84d51fe505fd6a2b6f98ebe8f33
* fix RefBase so it retains binary-compatibility with gingerbreadMathias Agopian2011-06-131-7/+13
| | | | | Bug: 4595257 Change-Id: I0d5e10f497e3f39868bff58f6ded510c38b44b12
* RefBase subclasses can now decide how they want to be destroyed.Mathias Agopian2011-05-191-2/+8
| | | | | | | This adds a destroy() virtual on RefBase which sublasses can implement. destroy() is called in lieu of the destructor whenthe last strong ref goes away.
* Fix a wp<> bug where the owner ID would be wrongMathias Agopian2011-02-241-2/+5
| | | | | | | this was introduced recently. we make sure to use the correct owner id (the sp) instead of the wp. Change-Id: I78fdc6ec0c2d3e687278b70442d74d1924b512a2
* Fix some issues with RefBase debugging.Mathias Agopian2011-02-231-176/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove RefBase.h dependency on TextOutput.hMathias Agopian2011-02-221-5/+6
| | | | Change-Id: I72cd6b98ef82b4868fe1c8ec87862cf43fb4ee73
* fix [3408713] Dialog window invisible sometimesMathias Agopian2011-02-091-14/+48
| | | | | | | | | | | | weak pointer comparison operators were implemented wrong, they were using the internal "unsafe" pointer. We could end up with two "equal" weak pointer pointing to different objects. this caused KeyedVector keyed by weak pointer to work incorrectly, in turn causing a window that just got added to a list to be immediately removed. Change-Id: Ib191010c39aafa9229109e4211f6c3b2b2f9696d
* Fix a bug in sp<> and wp<> which could cause memory corruptionsMathias Agopian2010-06-241-12/+20
| | | | | | | | | | | when assigning a smart pointer to another one, we need to make sure to read all the data we need from the right-hand-side reference (the assignee) before we decRef the assigned. This bug would cause linked-list of smart-pointers to fail miserably. Change-Id: Ibb554c15fddf909f7737c632b7c80322e80ea93f
* update surfaceflinger, libui and libagl to the new gralloc apiMathias Agopian2009-05-041-0/+4
| | | | | | | | | | | | | | - Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually. - factor all the lock/unlock code in SurfaceBuffer. - fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers(). - improved the situation with the dirty-region and fixed a problem that caused GL apps to not update. - make use of LightRefBase() where needed, instead of duplicating its implementation - add LightRefBase::getStrongCount() - renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp - disabled copybits test, since it clashes with the new gralloc api - Camera/Video will be fixed later when we rework the overlay apis
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+550
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-550/+0
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-0/+24
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+526