Doug Turner wrote:

> There is some going back and forth about what the name of this new 
> interface *should* be; either nsIServiceManager - renaming the 
> 'original' interface or nsIServiceManager2 - saving the 'original 
> interface.  I have gone with the former as I prefer it.  I can be 
> convinced otherwise.
> 
>


If you want to chase the ghost of backwards compatibility for some 
busted binary only plugins the only way to do it cleanly, and correctly, 
is to keep the interface name and interface methods the same.

It looks like that from your posting that you are renaming the old 
interface and changing nsIServiceManager by removing methods.  It seems 
to me that if you're doing this and still wanting to retain backwards 
compatibility that you are going to run into problems since with C++ 
name mangling you're going to get your new nsIServerManager 
implementation with the expectation of the old interface.

If you're not wanting to maintain backwards compatibility then I would 
say "go for it" and just change nsIServiceManager and don't keep the old 
one around.  But if you are maintaining it, please do it the right way 
and keep the mantra "interfaces never change."

--Chris

-- 
------------
Christopher Blizzard
http://people.redhat.com/blizzard/
Mozilla.org - we're on a mission from God.  Still.
------------


Reply via email to