fix mapBlockIndex segfault. use .count properly.

This commit is contained in:
Christopher Jeffrey 2014-11-18 16:26:42 -08:00
parent 5b15937d8f
commit 499c47aa34
1 changed files with 12 additions and 7 deletions

View File

@ -5691,18 +5691,24 @@ ctx_to_jstx(const CTransaction& ctx, uint256 block_hash, Local<Object> jstx) {
if (ctx.IsCoinBase()) { if (ctx.IsCoinBase()) {
jstx->Set(NanNew<String>("generated"), NanNew<Boolean>(true)); jstx->Set(NanNew<String>("generated"), NanNew<Boolean>(true));
} }
CBlockIndex* pindex = mapBlockIndex[block_hash]; if (mapBlockIndex.count(block_hash) > 0) {
if (pindex) { CBlockIndex* pindex = mapBlockIndex[block_hash];
jstx->Set(NanNew<String>("confirmations"), jstx->Set(NanNew<String>("confirmations"),
NanNew<Number>(pindex->nHeight)); NanNew<Number>(pindex->nHeight));
jstx->Set(NanNew<String>("blockindex"), jstx->Set(NanNew<String>("blockindex"),
NanNew<Number>(pindex->nHeight)); NanNew<Number>(pindex->nHeight));
jstx->Set(NanNew<String>("blocktime"), jstx->Set(NanNew<String>("blocktime"),
NanNew<Number>(pindex->GetBlockTime())); NanNew<Number>((int64_t)pindex->GetBlockTime())->ToInteger());
jstx->Set(NanNew<String>("time"), jstx->Set(NanNew<String>("time"),
NanNew<Number>((uint32_t)pindex->GetBlockTime())->ToUint32()); NanNew<Number>((int64_t)pindex->GetBlockTime())->ToInteger());
jstx->Set(NanNew<String>("timereceived"), jstx->Set(NanNew<String>("timereceived"),
NanNew<Number>((uint32_t)pindex->GetBlockTime())->ToUint32()); NanNew<Number>((int64_t)pindex->GetBlockTime())->ToInteger());
//jstx->Set(NanNew<String>("blocktime"),
// NanNew<Number>(pindex->GetBlockTime()));
//jstx->Set(NanNew<String>("time"),
// NanNew<Number>(pindex->GetBlockTime()));
//jstx->Set(NanNew<String>("timereceived"),
// NanNew<Number>(pindex->GetBlockTime()));
} else { } else {
jstx->Set(NanNew<String>("confirmations"), NanNew<Number>(0)); jstx->Set(NanNew<String>("confirmations"), NanNew<Number>(0));
jstx->Set(NanNew<String>("blockindex"), NanNew<Number>(-1)); jstx->Set(NanNew<String>("blockindex"), NanNew<Number>(-1));
@ -5710,8 +5716,7 @@ ctx_to_jstx(const CTransaction& ctx, uint256 block_hash, Local<Object> jstx) {
jstx->Set(NanNew<String>("time"), NanNew<Number>(0)); jstx->Set(NanNew<String>("time"), NanNew<Number>(0));
jstx->Set(NanNew<String>("timereceived"), NanNew<Number>(0)); jstx->Set(NanNew<String>("timereceived"), NanNew<Number>(0));
} }
Local<Array> conflicts = NanNew<Array>(); jstx->Set(NanNew<String>("walletconflicts"), NanNew<Array>());
jstx->Set(NanNew<String>("walletconflicts"), conflicts);
#if 0 #if 0
if (is_mine) { if (is_mine) {
jstx->Set(NanNew<String>("blockhash"), NanNew<String>(block_hash.GetHex())); jstx->Set(NanNew<String>("blockhash"), NanNew<String>(block_hash.GetHex()));