Doug Turner wrote: > Suppose that the I have an interface that has a flags attribute (long). > In this interface, I define the first few flags. Then we freeze the > interface. A month later, I want to add a new flag. Can I? > > I am thinking that this change is okay even with a frozen interface - > adding a new flags is okay - changing existing flags is unthinkable. > thoughts?
That's the same as changing the interface. People who compile with the new headers probably won't get the existing behaviour that they expect with an older implementation and once an interface is frozen it's frozen, right? "Interfaces never change." ( Am I repeating myself? ) I think that you're taking advantage of the fact that you can overload a flag since it happens to be a real number of some kind and doing so breaking the contract that the interface promises. Besides, in this case, adding an nsIFoo2 interface isn't anywhere near as painful as in the usual case since the implementation doesn't need to change except to handle the new interface QI and the new flag. The most expensive part is putting in the new .idl file. --Chris -- ------------ Christopher Blizzard http://people.redhat.com/blizzard/ Mozilla.org - we're on a mission from God. Still. ------------
