[bt-devel] Refactoring displaywindows classes; a future feature

Martin Gruner mg.pub at gmx.net
Fri Nov 20 00:01:14 MST 2009


Ok!

mg

Am Donnerstag, 19. November 2009 23:54:31 schrieb Eeli Kaikkonen:
> On Thu, 19 Nov 2009, Martin Gruner wrote:
> > Eeli,
> >
> > > Also I want to
> > > get rid of passing module pointers and use QStrings and QStringLists
> > > which lessen the probability of crashes when modifying something. (As a
> > > side note QString and QStringList copies shouldn't be afraid of, its
> > > very cheap to copy them. See the Qt documentation for more.)
> >
> > I don't agree. It is never as cheap as copying a pointer. And if you just
> > switch from pointers to QStringLists that doesn't change the problem of
> > ownersphip. If you need to have a reference to a CSwordModuleInfo, a
> > pointer is a good thing to do that. Maybe we should centralize the places
> > where these pointers are held, but not copy around lists of module names.
> 
> I don't know if we mean same things. First, I'm not changing the
> majority of messagin in text windows. I'm trying to find out how it
> really works and meantime I noticed that it's better to change only the
> module selector buttonbar/buttons. They don't actually need moduleinfo
> in most places. And a window already has a list of modules, but as
> string list! The pointer list is generated on-the-fly in a getter
> method (I only put similar code in the backend). So, copying string
> lists is actually cheaper.
> 
> In any case, the Qt documentation clearly says that "Implicitly
> shared classes are both safe and efficient when passed as arguments" and
> "you can pass instances of these classes as arguments to functions by
> value without concern for the copying overhead". Actually, if I have
> understood correctly, copying a QString or QStringList is about as cheap
> as copying a reference counted pointer! And even if it wasn't, the
> overhead is minimal in functions which are called only once in a row.
> Some loops may of course be a different thing.
> 
> > Besides, a function called getPointerList is not a very specific name. :D
> 
> I can change that if needed, it's not used yet in other places so
> changing doesn't have side effects. It may also be possible to revert
> adding it if the code works without it - I'll explore it while I code.
> 
>   Yours,
> 	Eeli Kaikkonen (Mr.), Oulu, Finland
> 	e-mail: eekaikko at mailx.studentx.oulux.fix (with no x)
> 
> _______________________________________________
> bt-devel mailing list
> bt-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/bt-devel
> 




More information about the bt-devel mailing list