[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