Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Status, Recent Changes, and Plans

 

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 an nsCOMPtr and a raw pointer (or a literal 0 or nsnull) 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 an nsISupports** is needed.
  • Relaxed the invariant for nsCOMPtr<nsISupports>, so that it is now a pointer to any XPCOM interface.
  • Added do_QueryReferent to make using nsIWeakReferences 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 reduce nsCOMPtr clients' dependency on the XPCOM library.

Recent changes to this document

  • Removed the statement that == and != between an nsCOMPtr 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 nsCOMPtrs 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.
 

Document Tags and Contributors

Tags: 
 Contributors to this page: teoli, gsvelto, kohei.yoshino
 Last updated by: teoli,