save some database calls when getting top block hash and height

This commit is contained in:
moneromooo-monero 2018-11-20 20:19:39 +00:00
parent 9827880877
commit 79b4e9f377
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
7 changed files with 49 additions and 31 deletions

View file

@ -64,11 +64,13 @@ public:
virtual uint64_t height() const override { return blocks.size(); }
virtual size_t get_block_weight(const uint64_t &h) const override { return blocks[h].weight; }
virtual uint64_t get_block_long_term_weight(const uint64_t &h) const override { return blocks[h].long_term_weight; }
virtual crypto::hash top_block_hash() const override {
virtual crypto::hash top_block_hash(uint64_t *block_height = NULL) const override {
uint64_t h = height();
crypto::hash top = crypto::null_hash;
if (h)
*(uint64_t*)&top = h - 1;
if (block_height)
*block_height = h - 1;
return top;
}
virtual void pop_block(cryptonote::block &blk, std::vector<cryptonote::transaction> &txs) override { blocks.pop_back(); }