Bug 772987 - Part 3: Update comment in ClearOnShutdown. r=glandium

--HG--
extra : rebase_source : 06b3e9339f87ae3feaf522955ff12e549039bf3b
This commit is contained in:
Justin Lebar 2012-07-26 15:33:45 -04:00
parent 56db9a6e24
commit 59c64a1be2

View File

@ -16,14 +16,18 @@
* template<class SmartPtr>
* void ClearOnShutdown(SmartPtr *aPtr)
*
* This function takes a pointer to a smart pointer (i.e., nsCOMPtr<T>*,
* nsRefPtr<T>*, or nsAutoPtr<T>*) and nulls the smart pointer on shutdown.
* This function takes a pointer to a smart pointer and nulls the smart pointer
* on shutdown.
*
* This is useful if you have a global smart pointer object which you don't
* want to "leak" on shutdown.
*
* There is no way to undo a call to ClearOnShutdown, so you can call it only
* on smart pointers which you know will live until the program shuts down.
* Although ClearOnShutdown will work with any smart pointer (i.e., nsCOMPtr,
* nsRefPtr, nsAutoPtr, StaticRefPtr, and StaticAutoPtr), you probably want to
* use it only with StaticRefPtr and StaticAutoPtr. There is no way to undo a
* call to ClearOnShutdown, so you can call it only on smart pointers which you
* know will live until the program shuts down. In practice, these are likely
* global variables, which should be Static{Ref,Auto}Ptr.
*
* ClearOnShutdown is currently main-thread only because we don't want to
* accidentally free an object from a different thread than the one it was