summaryrefslogtreecommitdiffstats
path: root/libs/utils/VectorImpl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* remove libutilsAlex Ray2013-07-311-625/+0
| | | | | | | libutils is being moved from frameworks/native/ to system/core/ in order to facilitate native C++ platform (non-frameworks) code. Change-Id: I44089fb960591a40b8a9c30faabb10459d107d71
* remove reserved virtual slotsMathias Agopian2013-05-091-19/+0
| | | | | | | these consume small amount of space (plt) in every library that links against libutils. Change-Id: I1b6b3dd9098aa5a051243f7a5dbf91cd7dcb8b2c
* Add Vector::resize()Jesse Hall2013-03-151-0/+10
| | | | | Bug: 8384764 Change-Id: Icee83d389f3e555eba7d419b64c8d52a9aa21b8b
* Revert "Revert "put back the unused virtuals in Vector<>""Dave Burke2012-10-251-0/+19
| | | | | | This reverts commit 225c66a48cdc3acef21ee380dc134449749d3cb3 Change-Id: If31a04b81052cbc7dd7bf237c07107c33066d03d
* minor SharedBuffer clean-upMathias Agopian2012-08-311-7/+7
| | | | Change-Id: If38b7ce85806ae628c00f2c938de4e3f75142543
* Revert "put back the unused virtuals in Vector<>"Mathias Agopian2012-08-241-19/+0
| | | | | | | | This reverts commit 1648d4c13ba2eff3ea14cd87ee94028458a39f97. Bug: 6977192 Change-Id: Idbb6b239aaed4fb1c054ce943f6ba06ede3492bb
* put back the unused virtuals in Vector<>Mathias Agopian2012-08-201-0/+19
| | | | | | | | | some binaries are using these private APIs and broke (as they should!) with this change. Temporarily restore the virtuals to work around this. Bug: 6977550 Change-Id: I7c37f24b16e4d586b89205c493db5169cf87e024
* improve Vector<> safety checksMathias Agopian2012-08-101-31/+22
| | | | | | | | | | - make errors that will always cause a memory corruption always fatal (for eg: KeyedVector<>::editValue{For|At}() failure) - make other errors fatal in debug mode, those that can be caught by the caller. - fix typos Change-Id: I65cc7d81035c37ce2906fc4500c50e5d5b5c49eb
* fix a corruption in Vector<> when adding new itemsMathias Agopian2012-05-171-1/+1
| | | | | | | | | would happen when vectors are copied and new items is added in both vectors. we didn't duplicate the underlying storage when adding items in vectors. Bug: 6515797 Change-Id: If544c07d96c05821e088d7f2c9b5736f7e306c31
* Rename LOG_ASSERT to ALOG_ASSERT DO NOT MERGESteve Block2012-01-091-8/+8
| | | | | | | See https://android-git.corp.google.com/g/157519 Bug: 5449033 Change-Id: I8ceb2dba1b031a0fd68d15d146960d9ced62bbf3
* Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-4/+4
| | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Minor code cleanups in vector.Jeff Brown2011-07-141-26/+24
| | | | | | | | | | | | | Fixed a potential bug where calling replaceAt with a reference to an existing element in the vector at the same index would cause the element to be destroyed while being copied to itself. Refactored the conditions in _grow and _shrink for clarity. The computations are exactly the same but I think it reads better this way. In particular, the ssize_t variable 's' is gone: it didn't need to be signed anyways because its value could never be negative. Change-Id: If087841c15e6a87160eee874720c4a77eb0e99a6
* Replace Vector _grow/_shrink checks with assert.Jeff Brown2011-07-141-5/+7
| | | | | | | | | | | | | | | On review of the code, _grow and _shrink are checking for conditions that cannot happen and that don't even really make sense. For example, if _shrink is called with where + amount > mCount then this is really bad, however the check only considered the case when where >= mCount and then it would arbitrarily choose a new value for where. Huh? As it happens, the callers are correctly validating the arguments before passing them down to these methods so we can get rid of this code. Change-Id: I921852dba8997065bb0e9cac733e82028d14afcd
* Fix typo in an assert's logMathias Agopian2011-07-111-2/+2
| | | | Change-Id: I94883a23a0a92eaf3e4976f942f747a2137499ac
* Even more native input dispatch work in progress.Jeff Brown2010-06-171-3/+19
| | | | | | | | | | | | | | | | | Added more tests. Fixed a regression in Vector. Fixed bugs in pointer tracking. Fixed a starvation issue in PollLoop when setting or removing callbacks. Fixed a couple of policy nits. Modified the internal representation of MotionEvent to be more efficient and more consistent. Added code to skip/cancel virtual key processing when there are multiple pointers down. This helps to better disambiguate virtual key presses from stray touches (such as cheek presses). Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
* Native input dispatch rewrite work in progress.Jeff Brown2010-06-131-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old dispatch mechanism has been left in place and continues to be used by default for now. To enable native input dispatch, edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy. Includes part of the new input event NDK API. Some details TBD. To wire up input dispatch, as the ViewRoot adds a window to the window session it receives an InputChannel object as an output argument. The InputChannel encapsulates the file descriptors for a shared memory region and two pipe end-points. The ViewRoot then provides the InputChannel to the InputQueue. Behind the scenes, InputQueue simply attaches handlers to the native PollLoop object that underlies the MessageQueue. This way MessageQueue doesn't need to know anything about input dispatch per-se, it just exposes (in native code) a PollLoop that other components can use to monitor file descriptor state changes. There can be zero or more targets for any given input event. Each input target is specified by its input channel and some parameters including flags, an X/Y coordinate offset, and the dispatch timeout. An input target can request either synchronous dispatch (for foreground apps) or asynchronous dispatch (fire-and-forget for wallpapers and "outside" targets). Currently, finding the appropriate input targets for an event requires a call back into the WindowManagerServer from native code. In the future this will be refactored to avoid most of these callbacks except as required to handle pending focus transitions. End-to-end event dispatch mostly works! To do: event injection, rate limiting, ANRs, testing, optimization, etc. Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
* Revert "fix [2542425] memory leak during video recording"Dianne Hackborn2010-03-301-2/+0
| | | | This reverts commit 544592e14f8d7643238e40ba9879727497900f35.
* fix [2542425] memory leak during video recordingMathias Agopian2010-03-301-0/+2
| | | | | | | [Sorted|Keyed]Vector<TYPE> would leak their whole storage when resized from the end and TYPE had trivial dtor and copy operators. Change-Id: I8555bb1aa0863df72de27d67ae50e20706e90cf5
* fix [2542425] memory leak during video recordingMathias Agopian2010-03-291-1/+4
| | | | | | | | Vector::sort() is using _do_copy() incorrectly; _do_copy() calls the copy constructor, not the assignment operator, so we need to destroy the "destination" before copying the item. Change-Id: Iaeeac808fa5341a7d219edeba4aa63d44f31473c
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+611
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-611/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+611