Browse Source

merkle_sync: fix range_end formula — cover all parent+child bucket bits

topo_upd
Evgeny 2 months ago
parent
commit
a4582202a8
  1. 2
      tools/chatgui/transport/merkle_sync.c

2
tools/chatgui/transport/merkle_sync.c

@ -169,7 +169,7 @@ static int _get_level_hashes(struct merkle_sync* ms, const char* ns,
sqlite3* db = _db(ms->inst); if (!db) return -1; sqlite3* db = _db(ms->inst); if (!db) return -1;
int parent_shift = 63 - (int)level * 5; if (parent_shift < 0) parent_shift = 0; int parent_shift = 63 - (int)level * 5; if (parent_shift < 0) parent_shift = 0;
int next_shift = 63 - ((int)level + 1) * 5; if (next_shift < 0) next_shift = 0; int next_shift = 63 - ((int)level + 1) * 5; if (next_shift < 0) next_shift = 0;
uint64_t range_end = prefix | ((1ULL << parent_shift) - 1); uint64_t range_end = prefix | (0x1FULL << parent_shift) | (0x1FULL << (next_shift > 0 ? next_shift : 0));
sqlite3_stmt* stmt = NULL; sqlite3_stmt* stmt = NULL;
if (sqlite3_prepare_v2(db, if (sqlite3_prepare_v2(db,

Loading…
Cancel
Save