void HeapSnapshotHandler::sendGlobalVariable(int fd, MapParse::MapList const& list)
{
    for (MapParse::MapList::const_iterator i = list.begin(); i != list.end(); ++i) {
        // intentionally skip the shared mappings
        if (((i->m_protect & 15) == (MapElement::READ | MapElement::WRITE))
            && i->m_path.size()) {
            sendElement(fd, i);
            // currently only show interest in none initialize global
            MapParse::MapList::const_iterator old = i++;
            if ((old->m_end != i->m_start)
                || ((i->m_protect & 7) != (MapElement::READ | MapElement::WRITE))
                || (i->m_path.size())) {
                continue;
            }
            sendElement(fd, i);
        }
    }
}
예제 #2
0
void OutgoingLinkLocalSession::handleStreamStart(const ProtocolHeader&) {
    for (const auto& stanza : queuedElements_) {
        sendElement(stanza);
    }
    queuedElements_.clear();
}