We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent daf72b1 commit 66f6030Copy full SHA for 66f6030
src/jrd/PageToBufferMap.h
@@ -53,23 +53,32 @@ class PageToBufferMap
53
{
54
Item* item = m_map.lookup(page);
55
56
- if (!item)
57
- return nullptr;
58
-
59
- if (m_list != item)
+ if (item)
60
61
- listRemove(item);
62
- listInsert(item);
+ if (item->m_bdb->bdb_page == page)
+ {
+ // Move item into MRU position
+ if (m_list != item)
63
+ listRemove(item);
64
+ listInsert(item);
65
+ }
66
+ return item->m_bdb;
67
68
+
69
+ // bdb was reassigned
70
+ remove(page);
71
}
72
- return item->m_bdb;
73
+ return nullptr;
74
75
76
void put(BufferDesc* bdb)
77
78
Item* item = m_map.lookup(bdb->bdb_page);
79
if (item)
80
81
+ fb_assert(item->m_bdb != bdb);
82
if (m_list != item)
83
listRemove(item);
84
0 commit comments