static uint64_t getIDForHistoryItem(HistoryItem* item) { uint64_t itemID = 0; std::pair<HistoryItemToIDMap::iterator, bool> result = historyItemToIDMap().add(item, 0); if (result.second) { itemID = generateHistoryItemID(); result.first->second = itemID; idToHistoryItemMap().set(itemID, item); } else itemID = result.first->second; ASSERT(itemID); return itemID; }
void WebBackForwardListProxy::addItem(PassRefPtr<HistoryItem> prpItem) { RefPtr<HistoryItem> item = prpItem; ASSERT(!historyItemToIDMap().contains(item)); if (!m_page) return; uint64_t itemID = generateHistoryItemID(); ASSERT(!idToHistoryItemMap().contains(itemID)); historyItemToIDMap().set(item, itemID); idToHistoryItemMap().set(itemID, item); updateBackForwardItem(itemID, item.get()); m_page->send(Messages::WebPageProxy::BackForwardAddItem(itemID)); }