[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [aspell-devel] Aspell core dump
From: |
Kevin Atkinson |
Subject: |
Re: [aspell-devel] Aspell core dump |
Date: |
Wed, 15 Dec 2004 20:28:17 -0700 (MST) |
On Wed, 15 Dec 2004, Gary Setter wrote:
> <snip>
> > Hi,
> > I tried to look into this. The win32 port does not dump core, but
> > it does reprompt for when webserver is replaced by web-server or
> > web server. I have had it stuck in an infinite loop, but I'm
> > having difficulty recreating the problem.
So does Aspell hang because it is in an infinite loop or is it just keep on
repromting?
> >
> > At the center of the infinite loop problem is this function in
> > writeable.
> >
> > static void soundslike_next(WordEntry * w)
> > {
> > const Str * i = (const Str *)(w->intr[0]);
> > const Str * end = (const Str *)(w->intr[1]);
> > set_word(*w, *i);
> > ++i;
> > if (i == end) w->adv_ = 0;
> > }
> > Nothing is changing w->intr[0] or w-inter[1] so w->adv is never
> > set to zero and the loop never terminates.
> >
> > Also the WordEntry::intr array of void pointers is a bad idea in
> > my opinion. Is there any support for eliminating them?
>
> I'm still studying writable.cpp. I'm finding what are in my
> opinion bad ideas. This is the first:
> static inline StrVector * get_vector(Str s)
> {
> return (StrVector *)(s - sizeof(StrVector) - 2);
> }
> It seems a Vector<Str> object is allocated, but only the address
> of first string is saved. Then, when we want to use the Vector,
> we just subtract and cast.
> I think the
> WritableReplDict::add_repl()
> and
> WritableDict::add()
> functions are along the same lines.
> Does anyone else have problems with these functions as they are?
>
> I would like to straighten this out as part of fixing the
> infinite loop problem.
There is nothing wrong with them. I do it to save space. Yes it
contains some ugly stuff but it is completely contained within the single
source file so I don't have to worry about it anywhere else. I will not
unless it causes a problem.
> Also, I had a problem saving replacement pairs that included
> hyphenated words. I fixed it in
> PosibErr<void> SpellerImpl::store_replacement().
> The fix was to retrieve the separator characters from config and
> use them, (not just space) to break up the replacement string
> into its parts. I wasn't going to submit a patch until I fixed
> the infinite loop bug, but I would be interested in what the list
> things before I submit a patch.
I believe that is the correct thing to do but I will have to see the patch
to be sure.
--
http://kevin.atkinson.dhs.org
- [aspell-devel] Aspell core dump, James Lee, 2004/12/09
- Re: [aspell-devel] Aspell core dump, Kevin Atkinson, 2004/12/09
- Re: [aspell-devel] Aspell core dump, Gary Setter, 2004/12/13
- Re: [aspell-devel] Aspell core dump, Gary Setter, 2004/12/15
- Re: [aspell-devel] Aspell core dump,
Kevin Atkinson <=
- Re: [aspell-devel] Aspell core dump, Kevin Atkinson, 2004/12/16
- Re: [aspell-devel] Aspell core dump, Gary Setter, 2004/12/16
- Re: [aspell-devel] Aspell core dump, Kevin Atkinson, 2004/12/16
- Re: [aspell-devel] Aspell core dump, Jose Da Silva, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Kevin Atkinson, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Gary Setter, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Kevin Atkinson, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Jose Da Silva, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Gary Setter, 2004/12/17
- Re: [aspell-devel] Aspell core dump, Jose Da Silva, 2004/12/17