From 2d77e9e393866fffec9ba6bab6b9a924cf0bbca3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 26 Jun 2016 16:04:20 -0300 Subject: [PATCH] test --- gecko/gecko_blocks.c | 2 ++ iguana/iguana_realtime.c | 2 +- iguana/iguana_spendvectors.c | 8 +++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gecko/gecko_blocks.c b/gecko/gecko_blocks.c index 41e874df1..3af8e0fa3 100755 --- a/gecko/gecko_blocks.c +++ b/gecko/gecko_blocks.c @@ -141,6 +141,8 @@ int32_t gecko_hwmset(struct supernet_info *myinfo,struct iguana_info *virt,struc { iguana_blockzcopy(virt->chain->zcash,(void *)&virt->blocks.hwmchain,block); hdrsi = block->height / virt->chain->bundlesize; + block->hdrsi = hdrsi; + block->bundlei = (block->height % virt->chain->bundlesize); if ( (bp= virt->bundles[hdrsi]) != 0 ) { bp->numsaved++; diff --git a/iguana/iguana_realtime.c b/iguana/iguana_realtime.c index 942a4793f..dcd1623ba 100755 --- a/iguana/iguana_realtime.c +++ b/iguana/iguana_realtime.c @@ -305,7 +305,7 @@ int32_t iguana_realtime_update(struct supernet_info *myinfo,struct iguana_info * if ( (block= iguana_bundleblock(coin,&hash2,bp,bundlei)) != 0 ) iguana_bundlehashadd(coin,bp,bundlei,block); //printf("RT.%d vs hwm.%d starti.%d bp->n %d block.%p/%p ramchain.%p databad.%d prevnonz.%d\n",coin->RTheight,coin->blocks.hwmchain.height,coin->RTstarti,bp->n,block,bp->blocks[bundlei],dest->H.data,coin->RTdatabad,bits256_nonz(block->RO.prev_block)); - if ( coin->RTdatabad == 0 && block != 0 && bits256_nonz(block->RO.prev_block) != 0 ) + if ( coin->RTdatabad == 0 && block != 0 && (block->height == 0 || bits256_nonz(block->RO.prev_block) != 0) ) { iguana_blocksetcounters(coin,block,dest); startmillis0 = OS_milliseconds(); diff --git a/iguana/iguana_spendvectors.c b/iguana/iguana_spendvectors.c index e0a72b017..0c3ba9295 100755 --- a/iguana/iguana_spendvectors.c +++ b/iguana/iguana_spendvectors.c @@ -929,7 +929,7 @@ int32_t iguana_balanceflush(struct iguana_info *coin,int32_t refhdrsi) int32_t iguana_spendvectorsaves(struct iguana_info *coin) { - int32_t i,j,n,iter; struct iguana_bundle *bp; + int32_t i,j,n,iter; struct iguana_bundle *bp; struct iguana_ramchain *ramchain; struct iguana_ramchaindata *rdata; if ( coin->spendvectorsaved > 1 ) return(0); coin->spendvectorsaved = 1; @@ -941,6 +941,8 @@ int32_t iguana_spendvectorsaves(struct iguana_info *coin) { if ( (bp= coin->bundles[i]) != 0 ) { + rdata = (bp == coin->current) ? bp->ramchain.H.data : coin->RTramchain.H.data; + ramchain = (bp == coin->current) ? &bp->ramchain : &coin->RTramchain; if ( iter == 0 ) { if ( bp->tmpspends != 0 )//bp->ramchain.Xspendinds == 0 && @@ -953,9 +955,9 @@ int32_t iguana_spendvectorsaves(struct iguana_info *coin) } } } - else if ( iguana_spendvectorsave(coin,bp,&bp->ramchain,bp->tmpspends,bp->numtmpspends,bp->ramchain.H.data->numspends) == 0 ) + else if ( rdata != 0 && iguana_spendvectorsave(coin,bp,ramchain,bp->tmpspends,bp->numtmpspends,rdata->numspends) == 0 ) { - if ( bp->tmpspends != 0 && bp->numtmpspends > 0 && bp->tmpspends != bp->ramchain.Xspendinds ) + if ( bp->tmpspends != 0 && bp->numtmpspends > 0 && bp->tmpspends != ramchain->Xspendinds ) myfree(bp->tmpspends,sizeof(*bp->tmpspends) * bp->numtmpspends); bp->numtmpspends = 0; bp->tmpspends = 0;