diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-18 08:14:23 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-03-18 08:14:23 +0100 |
commit | a36c3f69c82e1a38b43f0c5f36c562fb08615c62 (patch) | |
tree | 78f9875465a215447e28f1a2c8363c2ea05b3a87 /xpcom/glue/nsTArray.h | |
parent | c7c3c8600febd196152e5b23f687cbe8aa493627 (diff) | |
parent | b0c7cca308a4321dea734044ccdb511dbedea83b (diff) | |
download | UXP-a36c3f69c82e1a38b43f0c5f36c562fb08615c62.tar UXP-a36c3f69c82e1a38b43f0c5f36c562fb08615c62.tar.gz UXP-a36c3f69c82e1a38b43f0c5f36c562fb08615c62.tar.lz UXP-a36c3f69c82e1a38b43f0c5f36c562fb08615c62.tar.xz UXP-a36c3f69c82e1a38b43f0c5f36c562fb08615c62.zip |
Merge branch 'master' of https://github.com/MoonchildProductions/UXP
Diffstat (limited to 'xpcom/glue/nsTArray.h')
-rw-r--r-- | xpcom/glue/nsTArray.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/xpcom/glue/nsTArray.h b/xpcom/glue/nsTArray.h index 82586a79a..64af17bbb 100644 --- a/xpcom/glue/nsTArray.h +++ b/xpcom/glue/nsTArray.h @@ -1503,6 +1503,24 @@ public: mozilla::Forward<Item>(aItem)); } + // Reconstruct the element at the given index, and return a pointer to the + // reconstructed element. This will destroy the existing element and + // default-construct a new one, giving you a state much like what single-arg + // InsertElementAt(), or no-arg AppendElement() does, but without changing the + // length of the array. + // + // array[idx] = T() + // + // would accomplish the same thing as long as T has the appropriate moving + // operator=, but some types don't for various reasons. + elem_type* ReconstructElementAt(index_type aIndex) + { + elem_type* elem = &ElementAt(aIndex); + elem_traits::Destruct(elem); + elem_traits::Construct(elem); + return elem; + } + // This method searches for the smallest index of an element that is strictly // greater than |aItem|. If |aItem| is inserted at this index, the array will // remain sorted and |aItem| would come after all elements that are equal to |