Hi all, Bug 1207245 has landed on mozilla-central. Its main purpose in life is to unify mozilla::RefPtr and nsRefPtr (both of which live in MFBT) into a single RefPtr class. This new RefPtr class, like nsRefPtr, lives at the *global* scope, not in the mozilla:: namespace. Follow-up patches or ideas on how to fix this welcome; I have brute-force ideas on how to do it, but they require large quantities of machine time.
The new RefPtr works exactly the same as the old nsRefPtr: getter_AddRefs, interoperation with nsCOMPtr, etc. It's worth noting that if you used byRef with mozilla::RefPtr for (XP)COM outparam semantics, you'll have to use getter_AddRefs now instead. Please note that getter_AddRefs zeroes out the pointer prior to passing it as an outparam (as it has always done), which byRef did *not* do. (You should not have been depending on this behavior, but if you were...) Updating patches/commits affected by these changes should be as simple as running: perl -p -i -e 's#mozilla/nsRefPtr.h#mozilla/RefPtr.h#' perl -p -i -e 's#mozilla::RefPtr#RefPtr#' perl -p -i -e 's#nsRefPtr<#RefPtr<#' perl -p -i -e 's#byRef#getter_AddRefs#' over the affected files. As a side-effect of these changes, mozilla::RefCounted and mozilla::external::AtomicRefCounted have moved to their own header, mozilla/RefCounted.h. Happy hacking, -Nathan _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform