<html><head></head><body>No. I refer to the general case, to the mess that was some of VLC code way back, and to your proposal. It's all the same: it reliably hide bugs in single thread, making code fail silently (as Thomas pointed out), and it unreliably works around races, making them nigh-impossible to debug.<br><br>Either way, it makes debugging miserable.<br><br><div class="gmail_quote">Le 19 février 2019 11:02:27 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Again you're talking about defensive programming in general. I agreed <br>already in many cases it's probably wrong. I don't think it's the case here.<br><br>On 19/02/2019 09:59, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> You are doing the exact same mistake as Jean-Paul Saman when he <br> sprinkled defensive programming over the code base: incorrectly <br> assuming that VLC is single-threaded.<br><br> Le 19 février 2019 10:44:38 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> <br> a écrit :<br><br>     There cannot be any double-free occurring in my implementation. That's<br>     the class of bugs it removes.<br><br>     It will of course not solve use after free issues. And I don't see how<br>     it makes it easier/harder to track such issues.<br><br>     On 19/02/2019 09:02, Rémi Denis-Courmont wrote:<br><br>         This does not remove any class of bug. If there is a<br>         use-after-free, it still fails or hides the bug (depending if<br>         the use checks for NULL or not). If there is a double free<br>         race, it hides the bug in most cases making it very hard to<br>         reproduce, all the while not actually fixing it. Le 19 février<br>         2019 09:13:36 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> a<br>         écrit : On 19/02/2019 08:03, Jean-Baptiste Kempf wrote: Hello,<br>         On Tue, 19 Feb 2019, at 08:01, Steve Lhomme wrote: I really<br>         prefer having a crash (via assert/ASAN) when a client is<br>         misusing an API (calling Destroy with a freed pointer) instead<br>         of ignoring it. This is true when calling Destroy twice is a<br>         bug. It isn't with this Then assert() it. I'm not sure I'm<br>         following. Would you assert when calling decoder_Destroy()<br>         with a NULL decoder (meaning it doesn't exist at all, not even<br>         been through decoder_Init) ? Or in the solution I removed<br>         where you'd call decoder_Destroy() with a holder than has been<br>         emptied, which is not a bug at all. Or you mean assert when<br>         decoder_Destroy() is passed an already freed pointer ? In<br>         which case no assert will help detect a double free. As a more<br>         general remark, I think it's odd that rather than removing a<br>         class of bugs, we prefer to keep it and rely on tools to find<br>         them for us, when they eventually occur. This is not a libVLC<br>         API, where you need to deal with invalid input, and where<br>         assert is not enough. -- Jean-Baptiste Kempf - President +33<br>         672 704 734<hr>         vlc-devel mailing list To unsubscribe or modify your<br>         subscription options:<br>         <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><hr>         vlc-devel mailing list To unsubscribe or modify your<br>         subscription options:<br>         <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a> -- Envoyé de<br>         mon appareil Android avec Courriel K-9 Mail. Veuillez excuser<br>         ma brièveté.<hr>         vlc-devel mailing list To unsubscribe or modify your<br>         subscription options:<br>         <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a> <hr>     vlc-devel mailing list<br>     To unsubscribe or modify your subscription options:<br>     <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br><br><br> -- <br> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez <br> excuser ma brièveté.<hr> vlc-devel mailing list<br> To unsubscribe or modify your subscription options:<br> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>