aboutsummaryrefslogtreecommitdiff
path: root/src/indirectmap.h
Commit message (Collapse)AuthorAgeFilesLines
* prepend license statement to indirectmapKaz Wesley2016-07-271-0/+4
| | | | | Add statement about MIT licensing to indirectmap.h. I forgot the license preamble when I originally wrote the file.
* mapNextTx: use pointer as key, simplify valueKaz Wesley2016-06-021-0/+52
Saves about 10% of application memory usage once the mempool warms up. Since the mempool is DynamicUsage-regulated, this will translate to a larger mempool in the same amount of space. Map value type: eliminate the vin index; no users of the map need to know which input of the transaction is spending the prevout. Map key type: replace the COutPoint with a pointer to a COutPoint. A COutPoint is 36 bytes, but each COutPoint is accessible from the same map entry's value. A trivial DereferencingComparator functor allows indirect map keys, but the resulting syntax is misleading: `map.find(&outpoint)`. Implement an indirectmap that acts as a wrapper to a map that uses a DereferencingComparator, supporting a syntax that accurately reflect the container's semantics: inserts and iterators use pointers since they store pointers and need them to remain constant and dereferenceable, but lookup functions take const references.