void PCLibraryState::removeLibFromCache(cache_t element) { IntervalTree<Address, cache_t>::iterator iter = loadedLibs.begin(); while(iter != loadedLibs.end()) { // Can't use a for loop because I need to fiddle with // increments manually. cache_t found = iter->second.second; if (found == element) { IntervalTree<Address, cache_t>::iterator toDelete = iter; ++iter; loadedLibs.erase(toDelete->first); } else { ++iter; } } }