Index header:
num_entries: 8
num_bytes: 52
this_id: 1
table_len: 64k

head: 0x90000004
tail: 0x90000000

Address: 0xa0010007
Address: 0xa0010003
Address: 0xa001000b
Address: 0xa001000a
Address: 0xa0010009
Address: 0xa0010006
Address: 0xa0010005
Address: 0xa0010002


-------------------------------

entry:
Address: 0xa0010007
hash: 0xcb30d119
next: 0
rankings_node: 0x90000004
key_len: 5
long_key: 0
data_size[0]: 4
data_addr[0]: 0xa0010008
key: "fifth"

rankings:
Address: 0x90000004
next: 0x90000001
prev: 0x90000004
contents: 0xa0010007
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa0010003
hash: 0x090fbce3
next: 0
rankings_node: 0x90000001
key_len: 6
long_key: 0
data_size[0]: 4
data_addr[0]: 0xa0010004
key: "second"

rankings:
Address: 0x90000001
next: 0x90000007
prev: 0x90000004
contents: 0xa0010003
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa001000b
hash: 0xad80b702
next: 0
rankings_node: 0x90000007
key_len: 5
long_key: 0
data_size: 0's
data_addr: 0's
key: "eight"

rankings:
Address: 0x90000007
next: 0x90000006
prev: 0x90000001
contents: 0xa001000b
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa001000a
hash: 0xfdae1d2a
next: 0
rankings_node: 0x90000006
key_len: 7
long_key: 0
data_size: 0's
data_addr: 0's
key: "seventh"

rankings:
Address: 0x90000006
next: 0x90000005
prev: 0x90000007
contents: 0xa001000a
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa0010009
hash: 0x2129e026
next: 0
rankings_node: 0x90000005
key_len: 5
long_key: 0
data_size: 0's
data_addr: 0's
key: "sixth"

rankings:
Address: 0x90000005
next: 0x90000003
prev: 0x90000006
contents: 0xa0010009
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa0010006
hash: 0x3d9011cc
next: 0
rankings_node: 0x90000003
key_len: 6
long_key: 0
data_size: 0's
data_addr: 0's
key: "fourth"

rankings:
Address: 0x90000003
next: 0x90000002
prev: 0x90000005
contents: 0xa0010006
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa0010005
hash: 0x8f04b77c
next: 0
rankings_node: 0x90000002
key_len: 5
long_key: 0
data_size: 0's
data_addr: 0's
key: "third"

rankings:
Address: 0x90000002
next: 0x90000001        <--------- wrong
prev: 0x90000003
contents: 0xa0010005
dirty: 0
pointer: 0

-------------------------------

entry:
Address: 0xa0010002
hash: 0x0138974a
next: 0
rankings_node: 0x90000000
key_len: 5
long_key: 0
data_size: 0's
data_addr: 0's
key: "first"

rankings:
Address: 0x90000000
next: 0x90000000
prev: 0x90000002
contents: 0xa0010002
dirty: 0
pointer: 0

==============================

Generated with:

disk_cache::Entry *entry;
ASSERT_TRUE(cache_->CreateEntry("first", &entry));
entry->Close();

char buffer[] = "abcd";
ASSERT_TRUE(cache_->CreateEntry("second", &entry));
entry->WriteData(0, 0, buffer, 4, NULL, false);
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("third", &entry));
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("fourth", &entry));
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("fifth", &entry));
entry->WriteData(0, 0, buffer, 4, NULL, false);
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("sixth", &entry));
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("seventh", &entry));
entry->Close();

ASSERT_TRUE(cache_->CreateEntry("eight", &entry));
entry->Close();

ASSERT_TRUE(cache_->OpenEntry("second", &entry));
entry->ReadData(0, 0, buffer, 4, NULL);        <--- fix the values*
entry->Close();

ASSERT_TRUE(cache_->OpenEntry("fifth", &entry));
entry->ReadData(0, 0, buffer, 4, NULL);
entry->Close();

* break on Rankings::Remove() and edit the values before they are saved.