[hunspell-fi-devel] libvoikko-0.2 - voikko_do_spell() optimointia

Reijo Tomperi reijo.tomperi at pp2.inet.fi
Tue Apr 25 16:33:55 EEST 2006


libvoikko-0.2:ssa voikko_spell.c tiedostossa voikko_do_spell() 
funktiossa, analyse_item() kutsu ei muuta parametrikseen saamaa 
merkkijonoa, joten voimme antaa sille parametriksi alkuperäisen 
merkkijonon kopion sijaan, jolloin vältymme yleensä muistin varaamiselta 
ja kopioimiselta.

Saavutettu hyöty on melko mitätön, mutta kun nyt tuon koodimuutoksen 
tein, niin ajattelin laittaa eteenpäin.

int voikko_do_spell(const char * word) {
    analyse_item(word, MORPHOLOGY);
    if (first_analysis_result()) return VOIKKO_SPELL_OK;
    if (voikko_options.ignore_dot && strlen(word) > 1 && 
word[strlen(word) - 1] == '.') {
        char * buffer = malloc(strlen(word) + 1);
        if (!buffer) return VOIKKO_INTERNAL_ERROR;
        strcpy(buffer, word);
        buffer[strlen(word) - 1] = '\0';
        analyse_item(buffer, MORPHOLOGY);
        free(buffer);
        if (first_analysis_result()) return VOIKKO_SPELL_OK;
    }
    
    return VOIKKO_SPELL_FAILED;
}



More information about the devel mailing list