OSDN Git Service

Ensure that Vector::erase() returns a valid iterator
authorJason Simmons <jsimmons@google.com>
Thu, 25 Oct 2012 22:58:43 +0000 (15:58 -0700)
committerJason Simmons <jsimmons@google.com>
Thu, 25 Oct 2012 22:58:43 +0000 (15:58 -0700)
commit689925caf4b94d40d74e0a9be517e2cbd13586ab
tree7418cfc70989409f9427579173d0381167a9fbec
parentd17e3b5f6cf71eb52bc81f37719254ce08244b34
Ensure that Vector::erase() returns a valid iterator

Vector::erase may reallocate the Vector's storage while removing an element.
However, erase() calls begin() before calling removeItemsAt(), thus caching
a pointer the the Vector's old storage.  If the storage is reallocated,
the iterator returned by erase() will be based on the old storage pointer
and will thus be invalid.

Change-Id: I2450c55fd418e6b1c558a4ca7c024573abbaa098
include/utils/Vector.h