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 annsCOMPtr
and a raw pointer (or a literal0
ornsnull
) 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_AddRefs
when annsISupports**
is needed. - Relaxed the invariant for
nsCOMPtr<nsISupports>
, so that it is now a pointer to any XPCOM interface. - Added
do_QueryReferent
to make usingnsIWeakReference
s easier.
Plans for nsCOMPtr
- bug 59212: as soon as we test on more compilers, start recommending
already_AddRefed
as a function result. - bug 59414: making
operator&
private
may help prevent some leaks caused by casting - Move the factored
nsCOMPtr
routines into their own library, to reducensCOMPtr
clients' dependency on the XPCOM library.
Recent changes to this document
- Removed the statement that
==
and!=
between annsCOMPtr
and 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
nsCOMPtr
s in function signatures - Added references to recent bugs influencing the use of
nsCOMPtr
machinery: 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.