Exemplo n.º 1
0
static inline void writeSymbolNames(const SymbolNameMap &symbolNames, SymbolNameMap &current)
{
    SymbolNameMap::const_iterator it = symbolNames.begin();
    const SymbolNameMap::const_iterator end = symbolNames.end();
    while (it != end) {
        Set<Location> &value = current[it->first];
        value.unite(it->second);
        ++it;
    }
}
Exemplo n.º 2
0
void dirtySymbolNames(SymbolNameMap &map, const Set<uint32_t> &dirty)
{
    SymbolNameMap::iterator it = map.begin();
    while (it != map.end()) {
        Set<Location> &locations = it->second;
        Set<Location>::iterator i = locations.begin();
        while (i != locations.end()) {
            if (dirty.contains(i->fileId())) {
                locations.erase(i++);
            } else {
                ++i;
            }
        }
        if (locations.isEmpty()) {
            map.erase(it++);
        } else {
            ++it;
        }
    }
}
Exemplo n.º 3
0
int main(int /*argc*/, char ** /*argv*/)
{
    SymbolNameMap map;
    map.insert("aa0", Location("foobar", 1, 1));
    map.insert("ab0", Location("foobar", 1, 1));
    map.dump();
    SymbolNameMap::iterator it = map.begin();
    while (it != map.end()) {
        qDebug() << it.key() << it.values();
        ++it;
    }

    qDebug() << map.values("aa0", SymbolNameMap::CaseSensitive);
    qDebug() << map.values("Aa0", SymbolNameMap::CaseSensitive);
    qDebug() << map.values("Aa0", SymbolNameMap::CaseInsensitive);
    return 0;

    // map.insert("A", Location("foobar", 1, 1));
    // map.insert("a", Location("foobar2", 1, 1));
    // map.insert("A", Location("foobar2", 1, 1));

    // qDebug() << map.size();
    // return 0;

    // printf("A: %ld\n", map.values("A", SymbolNameMap::CaseInsensitive).size());
    // printf("A: %ld\n", map.values("a", SymbolNameMap::CaseInsensitive).size());
    // printf("A: %ld\n", map.values("a", SymbolNameMap::CaseSensitive).size());
    map.insert("foobar", Location("foobar", 1, 1));
    //map.insert("fOobAr0", Location("foobar", 1, 1));
    qDebug() << map.values("foobar", SymbolNameMap::CaseSensitive);
    qDebug() << map.values("foobar", SymbolNameMap::CaseInsensitive);
    return 0;
    printf("foobar before remove %ld\n", map.values("foobar", SymbolNameMap::CaseSensitive).size());
    printf("removing %d\n", map.remove("foobar0"));
    printf("after remove cs %ld\n", map.values("foobar0", SymbolNameMap::CaseSensitive).size());
    printf("after remove cis %ld\n", map.values("foobar0", SymbolNameMap::CaseInsensitive).size());
    return 0;
}