[sword-devel] BUG in general book support

Troy A. Griffitts sword-devel@crosswire.org
Wed, 27 Feb 2002 10:38:19 -0700


Joachim,
	Point well taken.  I've rearranged things in SetKey to allow this
scenerio. Your test now works without segfaulting.  Let me know if it
helps things in Bibletime.

		-Troy.



Joachim Ansorg wrote:
> 
> Troy,
>         thank you for writing back!
> 
> > target->SetKey((SWKey*)*target);
> >
> > The problem is that you are extracting a pointer to the SWKey of the
> > current module (this is ok), then expecting it to remain valid long
> > enough for a call to SetKey to complete, on the same module.
> >
> > Here's the problem:  The process of setting a new key to a module
> > involves deleting the current key.  At this point your new key is
> > invalid, cuz it just got deleted.
> >
> > Does that make sense?
> 
> Yes, it does make sense. But shouldn't check SWModule::SetKey if it will
> delete it's own key? And why doesn't crash this with modules like BBE? If I'm
> right SWModule::SetKey is not reimplemented in another class.
> 
> I don't think this is the reason for all these crashes in BibleTime, I still
> can't find the reason for this, but I know it occurs only with the generic
> book support classes.
> 
> Thanks!
> Joachim