[sorry to sit on this so long]

On 26 October 2011 00:34, Tom Breton (Tehom) <[email protected]> wrote:
> When I implemented Expandfigurationcommand, I didn't know about Chord and
> GenericChord.  "Sets.h" doesn't jump out as containing chord classes, I
> just stumbled on it recently.

Sets.h is rather an old-school filename in Rosegarden terms -- we used
to routinely put lots of classes into a single header, and this one is
left over from those days.  It's also some of the more ambitious and
less satisfactory code in Rosegarden, at least in terms of how it is
actually used and how fragile it can get.  So there are highly likely
to be problems there.

> In doing so, I stumbled across a subtle issue with the AbstractSet
> hierarchy: AbstractSet tries to call virtual functions in its ctor, via
> initialise.  That doesn't do what you want in derived classes.

Having said that -- is this really the case?  Looking at the last
version before your changes, it looks as if initialise() was only
called from the GenericChord (i.e. derived class) ctor, not from
AbstractSet (base class) ctor.  And GenericChord is not a base class
of anything, things like Chord are just template specialisations of
it.

I agree that the design is wrong, though (AbstractSet really should be
purely abstract), and I appreciate this sort of close attention to the
logic of things.  Let me know if you think I'm misreading it.

For what it's worth, I don't see anything (more) wrong about the new
code; I've no particular problem with the change.


Chris

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to