On 2014-12-22 6:52 PM, Eric Rescorla wrote:


On Mon, Dec 22, 2014 at 3:35 PM, L. David Baron <dba...@dbaron.org
<mailto:dba...@dbaron.org>> wrote:

    On Monday 2014-12-22 18:21 -0500, Ehsan Akhgari wrote:
    > On 2014-12-22 6:07 PM, L. David Baron wrote:
    > >On Monday 2014-12-22 17:54 -0500, Ehsan Akhgari wrote:
    > >>On 2014-12-22 4:56 PM, L. David Baron wrote:
    > >>>I think removing implicit conversions to T* will make a lot of code
    > >>>in the tree uglier (".get()" everywhere).  That might, in turn,
    > >>>encourage people to do worse things to avoid having to write .get()
    > >>>everywhere; it's worth thinking about what those things will be.
    > >>
    > >>Do you have any examples of those bad things?  (FWIW I'm all for
    > >>making bad things impossible.)
    > >
    > >* using raw pointers instead of smart pointers
    >
    > I am planning on making that impossible [*] in 2015.

    I presume you mean making direct calls to AddRef and Release
    impossible, and not raw pointers in general.

    > >* making functions take nsRefPtr<T>& instead of T*, leading to
    > >   unnecessary risk of mutation of the caller's pointer and extra
    > >   indirection
    > >
    > >   * ... and perhaps the same for getters
    >
    > Are there good use cases for having functions accept an
    > nsRefPtr<T>&? If not, we can outlaw them.

    I've seen a few, but it's probably rare.  (Is that pattern still
    used all over editor?)


I frequently use const RefPtr<T>&? or const UniquePtr<T>&. Is this something
that people object to?

What is your use case? I guess it's not transferring ownership. I don't really understand why one would use these classes as argument when they're not trying to worry about ownership...

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to