Last night I landed changes to nsISupports and some base headers. It is our first big step in freezing our core xpcom API. I would like to thanks Rick Potts, Jud Valeski, and Mike Shaver for all of their help.
The changes were primarily shuffling things around and well as some major clean up. Here is an overview. Cleaned up the top level xpcom header and interface files: - nscore.h is now conceptually the top most header file. - nsCom.h should be removed eventually. It just points back to nscore. - nsrootidl.idl defines most PR* times for xpconnect'ed languages. For C, it points back to nscore.h and also includes prtime.h cause PRTime is defined in the idl. - nsError.h, again points to nscore.h and also includes error handling defines. - nsIID.h is no more. The CID define is now in nsID.h We added four new headers: - nsISupportsBase.h. This is the base definition of nsISupports for C/C++. This includes only what is require to support this interface and nscore.h. All clients that use xpcom will probably be using this file. - nsISupportsImpl.h. If you are implementing a nsISupports object, this header file has some useful macros. - nsISupportsObsolete.h. This file includes nsISupports related things which should not be used anymore. If your code is using them, it is our desire to see you stop. At some point, this file will be removed. - nsCOMObsolete.h. Similar to nsISupportsObsolete.h, this file includes nsCOM related things which are obsolete and should be deprecated. Most of this file is related to code module defines which should have been placed at the module level. We introduced a new build define MOZILLA_STRICT_API. This define can be enabled when you want to build against XPCOM without pulling in unfrozen APIs. For example, the nsISupports.idl wraps its include of nsISupportsUtils.h with this flag. If you are building a nsISupports component/plugin you will implicitly including nsISupports.h. In this case, you should set this flag to prevent yourself from including API's which are still subject to change. Note that nsISupports.idl and nsrootidl.idl are both frozen. This should not be a big shock. XPCom API Tracking Tree: http://bugzilla.mozilla.org/showdependencytree.cgi?id=98278 doug turner [EMAIL PROTECTED]
