Token* t = corpus.get(token->mWord.get()); if (t) { if (t->mCount >= token->mCount) { t->mCount -= token->mCount;  if (t->mCount == 0) corpus.remove(t->mWord.get()); } }
corpus.remove(token->mWord.get(), token->mCount);
static void forgetTokens(Tokenizer& corpus, Token* tokens[], PRUint32 count){    for (PRUint32 i = 0; i < count; ++i) {        Token* token = tokens[i];        Token* t = corpus.get(token->mWord.get());        if (t) {            if (t->mCount >= token->mCount) {                t->mCount -= token->mCount;                // this saves space, but does it save time?                if (t->mCount == 0)                    corpus.remove(t->mWord.get());            }        }    }}