On Thu, 16 Dec 2004, Gary Setter wrote: > I would say that the code is difficult to understand. It does not > seem to me to be "solid code". To make a change, like adding a > field to whatever WritableBase::word_lookup holds would involve > exhaustive study of the whole module. Even after much study, you > would never be completely sure if your change broke someone > else's assumption. To just document it as it is would be > something of a cop out.
The void pointer array in WordEntry is simply a generic place to stick some data. It is a rather common practice so I don't see how that is hard to understand. The alternative would be to make WordEntry a virtual base class. This will involve unnecessary allocation of dynamic memory and functions calls. The way I decided WordEntry was that no extra dynamic memory needs to be allocated, and in the common case of only one word no functions calls are needed. I am unlikely to change it. The "(StrVector *)(s - sizeof(StrVector) - 2)" is there because it simplified storing the data in the hash table. I am open to patches that avoid it with out adding significant performance penalty or adding a lot of extra code. Of course I expect the changes to self contained within the file writable.cpp. Don't even think about changing readonly_ws.cpp the data there is very carefully laid out to avoid wasting a lot of space with extra pointers. -- http://kevin.atkinson.dhs.org _______________________________________________ Aspell-devel mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/aspell-devel