From 18a5211173346f418efbd8f8917da0b6acd47017 Mon Sep 17 00:00:00 2001
From: moneromooo-monero <moneromooo-monero@users.noreply.github.com>
Date: Sat, 26 Dec 2015 18:00:45 +0000
Subject: [PATCH 1/2] blockchain: Fix height in call to on_blockchain_dec

It was a noop anyway
---
 src/cryptonote_core/blockchain.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 71a2b8841..2f999b5e3 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -490,7 +490,7 @@ block Blockchain::pop_block_from_blockchain()
       }
     }
   }
-  m_tx_pool.on_blockchain_dec(m_blocks.size()-1, get_tail_id());
+  m_tx_pool.on_blockchain_dec(m_db->height()-1, get_tail_id());
 
   return popped_block;
 }

From b0541a56eb0f3b07eb482726c3d99310e476a9fa Mon Sep 17 00:00:00 2001
From: moneromooo-monero <moneromooo-monero@users.noreply.github.com>
Date: Sat, 26 Dec 2015 18:01:24 +0000
Subject: [PATCH 2/2] blockchain: remove obsolete containers

---
 src/cryptonote_core/blockchain.cpp | 6 +-----
 src/cryptonote_core/blockchain.h   | 3 ---
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 2f999b5e3..feb31f2fc 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -499,11 +499,7 @@ bool Blockchain::reset_and_set_genesis_block(const block& b)
 {
   LOG_PRINT_L3("Blockchain::" << __func__);
   CRITICAL_REGION_LOCAL(m_blockchain_lock);
-  m_transactions.clear();
-  m_blocks.clear();
-  m_blocks_index.clear();
   m_alternative_chains.clear();
-  m_outputs.clear();
   m_db->reset();
 
   block_verification_context bvc = boost::value_initialized<block_verification_context>();
@@ -1251,7 +1247,7 @@ bool Blockchain::handle_alternative_block(const block& b, const crypto::hash& id
     {
       // if block parent is not part of main chain or an alternate chain,
       // we ignore it
-      CHECK_AND_ASSERT_MES(parent_in_main, false, "internal error: broken imperative condition it_main_prev != m_blocks_index.end()");
+      CHECK_AND_ASSERT_MES(parent_in_main, false, "internal error: broken imperative condition: parent_in_main");
 
       complete_timestamps_vector(m_db->get_block_height(b.prev_id), timestamps);
     }
diff --git a/src/cryptonote_core/blockchain.h b/src/cryptonote_core/blockchain.h
index 2f9287e81..bc167f489 100644
--- a/src/cryptonote_core/blockchain.h
+++ b/src/cryptonote_core/blockchain.h
@@ -195,8 +195,6 @@ namespace cryptonote
     mutable epee::critical_section m_blockchain_lock; // TODO: add here reader/writer lock
 
     // main chain
-    blocks_container m_blocks;               // height  -> block_extended_info
-    blocks_by_id_index m_blocks_index;       // crypto::hash -> height
     transactions_container m_transactions;
     size_t m_current_block_cumul_sz_limit;
 
@@ -230,7 +228,6 @@ namespace cryptonote
 
     // some invalid blocks
     blocks_ext_by_hash m_invalid_blocks;     // crypto::hash -> block_extended_info
-    outputs_container m_outputs;
 
 
     checkpoints m_checkpoints;