Hi,
the subject is the same as last year post from James Lee
http://lists.gnu.org/archive/html/aspell-devel/2004-05/msg00005.html
but the bug is different:
It occurs in the following context (gdb bt)
#0 clear_check_info ([EMAIL PROTECTED]) at check_list.hpp:19
#1 0xff2f7990 in aspeller::GuessInfo::add (this=0xffbef098) at
check_list.hpp:31
#2 0xff265270 in aspeller::LookupInfo::lookup (this=0xffbeef30, word=
{str_ = 0xffbeed68 "minchiar", size_ = 4294967295}, c=0x1f0, achar=122 'z', [EMAIL PROTECTED],
gi=0xffbef098) at modules/speller/default/affix.cpp:1001
#3 0xff2660e8 in aspeller::SfxEntry::check (this=0xb61fc, [EMAIL PROTECTED],
word=
{str_ = 0x7c180 "minchia", size_ = 7}, [EMAIL PROTECTED], gi=0xffbef098,
optflags=0, ppfx=0x0)
at modules/speller/default/affix.cpp:1254
Even if CheckInfo has size 36, the dump shows the CheckInfo structure has an
odd address ([EMAIL PROTECTED]). That's because of a previous GuessInfo::dup()
for
an odd size.
The following apparently fixes it
--- modules/speller/default/check_list.hpp% 2005-09-18 17:21:54.689029000
+0200
+++ modules/speller/default/check_list.hpp 2005-09-18 17:21:54.699031000
+0200
@@ -27,7 +27,7 @@
void reset() { buf.reset(); num = 0; head = 0; }
CheckInfo * add() {
num++;
- CheckInfo * tmp = (CheckInfo *)buf.alloc_top(sizeof(CheckInfo));
+ CheckInfo * tmp = (CheckInfo *)buf.alloc_top(sizeof(CheckInfo),
sizeof(void*));
clear_check_info(*tmp);
tmp->next = head;
head = tmp;
_______________________________________________
Aspell-devel mailing list
Aspell-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/aspell-devel