I'm sorry this section is in the way for first-time readers. You may want to skip directly to the Getting Started Guide, the Reference Manual, or the FAQ. I put this section at the top so that checking for recent changes will be easy.
Recent changes to nsCOMPtr
Most recent first
- Made
==and!=between annsCOMPtrand a raw pointer (or a literal0ornsnull) work correctly on all compilers. See bug 65664. - Made
getter_AddRefs( nsCOMPtr& )apply the same type-safety check that the simple assignment forms do. - Added
do_CreateInstance. - Added
do_GetService. - Eliminated the need to cast
getter_AddRefswhen annsISupports**is needed. - Relaxed the invariant for
nsCOMPtr<nsISupports>, so that it is now a pointer to any XPCOM interface. - Added
do_QueryReferentto make usingnsIWeakReferences easier.
Plans for nsCOMPtr
- bug 59212: as soon as we test on more compilers, start recommending
already_AddRefedas a function result. - bug 59414: making
operator&privatemay help prevent some leaks caused by casting - Move the factored
nsCOMPtrroutines into their own library, to reducensCOMPtrclients' dependency on the XPCOM library.
Recent changes to this document
- Removed the statement that
==and!=between annsCOMPtrand a raw pointer or literal 0 does not work on some compilers since it is no longer true. - Added an entire section to the Getting Started Guide on
nsCOMPtrs in function signatures - Added references to recent bugs influencing the use of
nsCOMPtrmachinery: bug 59212, and bug 59414 - Fixed comparisons 1 and 3, as per comments by Morten Welinder
- Updated examples to prefer direct initialization over copy initialization.
