Commit graph

7 commits

Author SHA1 Message Date
Wladimir J. van der Laan
f00705ae7f
serialize: Deprecate begin_ptr / end_ptr
Implement `begin_ptr` and `end_ptr` in terms of C++11 code,
and add a comment that they are deprecated.

Follow-up to developer notes update in 654a211622.
2016-10-02 09:50:25 +02:00
Wladimir J. van der Laan
47314e6daa prevector: add C++11-like data() method
This returns a pointer to the beginning of the vector's data.
2016-09-30 17:19:51 +02:00
Kaz Wesley
a7af72a697 prevector::swap: fix (unreached) data corruption
swap was using an incorrect condition to determine when to apply an optimization
(not swapping the full direct[] when swapping two indirect prevectors).

Rather than correct the optimization I'm removing it for simplicity. Removing
this optimization minutely improves performance in the typical (currently only)
usage of member swap(), which is swapping with a freshly value-initialized
object.
2016-04-16 08:05:11 -07:00
Kaz Wesley
1e2c29f263 prevector: destroy elements only via erase()
Fixes a bug in which pop_back did not call the deleted item's destructor.

Using the most general erase() implementation to implement all the others
prevents similar bugs because the coupling between deallocation and destructor
invocation only needs to be maintained in one place.
Also reduces duplication of complex memmove logic.
2016-04-16 08:05:11 -07:00
MarcoFalke
fa60d05a4e Add missing copyright headers 2016-01-05 21:34:15 +01:00
Pavel Janík
1812de9091 Name union to prevent compiler warning 2015-12-02 08:40:47 +01:00
Pieter Wuille
114b5812f6 Prevector type 2015-11-13 18:15:20 +01:00