question: public void computeDigest ( final Object snapshot , final MessageDigest digest ) { final ByteBuffer bb = ByteBuffer . allocate ( m_size ) ; final byte [ ] ba = m_index == 0 && s_islogDebug ? bb . array ( ) : null ; for ( AllocBlock b : m_allocBlocks ) { final int bits = b . m_commit . length * 32 ; final long startAddr = RWStore . convertAddr ( b . m_addr ) ; for ( int i = 0 ; i < bits ; i ++ ) { if ( RWStore . tstBit ( b . m_commit , i ) ) { final long paddr = startAddr + ( m_size * i ) ; bb . position ( 0 ) ; m_store . readRaw ( paddr , bb ) ; digest . update ( bb ) ; if ( ba != null ) { log . debug ( BytesUtil . toHexString ( ba ) ) ; } } } } { final byte [ ] data = digest . digest ( ) ; final StringBuffer sb = new StringBuffer ( ) ; for ( byte b : data ) { if ( sb . length ( ) > 0 ) sb . append ( "," ) ; sb . append ( b ) ; } log . warn ( "ALLOCATOR[" + m_index + ":" + m_size + "] freeBits: " + freebits ( ) + ", DIGEST:" + sb . toString ( ) ) ; } }
target:  Add the committed allocated slot contents to the digest FIXME: First version is correct rather than optimal, need to consider if there is any benefit to 