From 169ddb48e0f4224955757d196223b944921b1277 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 25 Mar 2016 21:42:31 -0300 Subject: [PATCH] test --- iguana/iguana_unspents.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/iguana/iguana_unspents.c b/iguana/iguana_unspents.c index d85a1d6f1..a18c660e3 100755 --- a/iguana/iguana_unspents.c +++ b/iguana/iguana_unspents.c @@ -102,8 +102,7 @@ int32_t iguana_volatileupdate(struct iguana_info *coin,int32_t incremental,struc } else // do the equivalent of historical, ie mark as spent, linked list, balance { - printf("RT "); - if ( iguana_utxoupdate(coin,spent_hdrsi,spent_unspentind,spent_pkind,spent_value,spendind,fromheight) == 0 ) + if ( iguana_utxoupdate(coin,spent_hdrsi,spent_unspentind,spent_pkind,spent_value,spendind,fromheight) < 0 ) return(0); } printf("iguana_volatileupdate: [%d] spent.(u%u %.8f pkind.%d) double spend? at ht.%d [%d] spendind.%d\n",spent_hdrsi,spent_unspentind,dstr(spent_value),spent_pkind,fromheight,fromheight/coin->chain->bundlesize,spendind); @@ -838,6 +837,7 @@ int32_t iguana_volatileinit(struct iguana_info *coin) void iguana_RTramchainfree(struct iguana_info *coin) { iguana_utxoupdate(coin,-1,0,0,0,0,-1); // free hashtables + coin->RTheight = coin->balanceswritten * coin->chain->bundlesize; iguana_ramchain_free(coin,&coin->RTramchain,1); } @@ -863,7 +863,7 @@ void iguana_RTramchainalloc(struct iguana_info *coin,struct iguana_bundle *bp) if ( changed != 0 ) { printf("RTramchain changed %d bundlei.%d | coin->RTheight %d != %d bp->bundleheight + %d coin->RTramchain.H.data->numblocks\n",coin->RTheight,i,coin->RTheight,bp->bundleheight, coin->RTramchain.H.data->numblocks); - coin->RTheight = coin->balanceswritten * coin->chain->bundlesize; + //coin->RTheight = coin->balanceswritten * coin->chain->bundlesize; iguana_RTramchainfree(coin); } } @@ -885,7 +885,7 @@ int32_t iguana_realtime_update(struct iguana_info *coin) if ( (bp= coin->current) != 0 && bp->hdrsi == coin->longestchain/coin->chain->bundlesize && bp->hdrsi == coin->balanceswritten && coin->RTheight >= bp->bundleheight && coin->RTheight < bp->bundleheight+bp->n ) { iguana_RTramchainalloc(coin,bp); - while ( (rdata= coin->RTramchain.H.data) != 0 && coin->RTheight < coin->blocks.hwmchain.height) + while ( (rdata= coin->RTramchain.H.data) != 0 && coin->RTheight <= coin->blocks.hwmchain.height) { dest = &coin->RTramchain; B = (void *)(long)((long)rdata + rdata->Boffset); @@ -911,11 +911,15 @@ int32_t iguana_realtime_update(struct iguana_info *coin) block->issued = 0; OS_removefile(fname,0); } + iguana_RTramchainfree(coin); return(-1); } flag++; if ( iguana_RTutxo(coin,bp,dest,bundlei) < 0 ) + { + iguana_RTramchainfree(coin); return(-1); + } coin->RTheight++; printf(">>>> RT.%d hwm.%d L.%d T.%d U.%d S.%d P.%d X.%d -> size.%ld\n",coin->RTheight,coin->blocks.hwmchain.height,coin->longestchain,dest->H.txidind,dest->H.unspentind,dest->H.spendind,dest->pkind,dest->externalind,(long)dest->H.data->allocsize); coin->RTramchain.H.data->numblocks = bundlei + 1;