[hunspell-fi-devel] Lisää huomioita libvoikon koodista

Harri Pitkänen hatapitk at cc.jyu.fi
Wed Apr 26 21:45:39 EEST 2006


On Wednesday 26 April 2006 21:14, Reijo Tomperi wrote:
> libvoikko 0.2, voikko_hyphenate.c, voikko_simple_hyphenation() function
> alussa on seuraavanlainen koodipätkä:
>
>
>     if (nchars == 0) return;
>
>     word_copy = malloc((nchars + 1) * sizeof(wchar_t));
>     for (i = 0; i < nchars; i++) {
>         word_copy[i] = towlower(word[i]);
>     }
>     word_copy[nchars] = '\0';
>
>     if (nchars == 1) {
>         free(word_copy);
>         return;
>     }
>
>
> Nähdäkseni koodi ei muuta nchars muuttujaa, eikä mitään muutakaan
> globaalia tai palautettavaa muuttujaa, joten miksi tuota ei ole
> kirjoitettu vain:
>
>
>     if (nchars == 0 || nchars == 1) return;
>
>     word_copy = malloc((nchars + 1) * sizeof(wchar_t));
>     for (i = 0; i < nchars; i++) {
>         word_copy[i] = towlower(word[i]);
>     }
>     word_copy[nchars] = '\0';
>
>
> Saavutettu hyöty on taas lähinnä koodin yksinkertaistumisessa, ellei
> tuossa ollut jokin logiikkabugi taustalla.

Joo, pikaisesti katsottuna olet oikeassa. Syy miksi tuo koodi on noin 
kirjoitettu on se, että funktio voikko_simple_hyphenation() oli 
prototyypiltään alunperin erilainen ja sitä on jälkeen päin muuteltu useaan 
otteeseen, eikä ole muistettu silloin katsoa kokonaisuutta. Korjaanpa tuon.

Harri



More information about the devel mailing list