On Mon, Dec 22, 2014 at 3:35 PM, L. David Baron <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? -Ekr > > >* using C-style casts (or reinterpret_cast) to make things compile > > > > C-style casts would not be able to make anything compile if the > > class doesn't provide an operator T*(). I'm not sure what you mean > > here. > > Sorry, originally wrote reinterpret_cast and then changed what I > wrote at the last minute because I was thinking about casting > between pointer types. > > -David > > -- > 𝄞 L. David Baron http://dbaron.org/ 𝄂 > 𝄢 Mozilla https://www.mozilla.org/ 𝄂 > Before I built a wall I'd ask to know > What I was walling in or walling out, > And to whom I was like to give offense. > - Robert Frost, Mending Wall (1914) > > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform > > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform