<div>Hi Behdad,</div><div><br></div><div>John is probably right, having DEBUG macro defined in release mode could potentially lead to a hard-tracking issues. And this possibility grows when we're compiling Harfbuzz in instead of linking to it.</div>

<div>Maybe worth of renaming to HB_DEBUG?</div><div><br clear="all"></div><div>Kind regards,<br>Konstantin</div>
<br><br><div class="gmail_quote">2013/4/30 John Emmas <span dir="ltr"><<a href="mailto:johne53@tiscali.co.uk" target="_blank">johne53@tiscali.co.uk</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">On 29/04/2013 10:15, John Emmas wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On 27/04/2013 21:37, Behdad Esfahbod wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The debug is fine.  The if gets optimized out by the compiler. That's by design.<br>
<br>
</blockquote>
<br>
Hi Behdad.  Can I ask how confident you are about this (for example, is there something in the Harfbuzz code to guarantee that there won't be a DEBUG macro when we're building our Release code?)<br>
<br>
<br>
</blockquote>
<br></div>
FWIW I took a more detailed look into this and I now have a better understanding of what you meant by "optimized out".  AFAICT any Harfbuzz statements that look something like this:-<br>
<br>
        if (DEBUG (BUFFER))<br>
<br>
will effectively evaluate to this:-<br>
<br>
        if (0)<br>
<br>
so yes, the compiler will (hopefully) optimize them away when building optimized code - but actually, that's not what I was worried about.  I was worrying about whether your custom DEBUG macro could ever get exposed to the outside world.  Let's say that one of the Harfbuzz public header files could eventually include that DEBUG macro.  If some unsuspecting programmer #included the public header, he could unwittingly have DEBUG defined without realizing it.  When interacting with other libraries, this could lead to some very subtle bugs which could be extremely difficult to track down.<br>


<br>
The good news though is that after taking a more detailed look at Harfbuzz, I can't find any path where that could happen so (for now at least) the outside world is safe and I feel a lot more reassured!  ;-)<br>
<br>
I just wanted to record it here, in case I need to remind myself in the future!<br>
<br>
But if I'd written that macro I think I'd have been tempted to play safe and call it something else....  ;-)<div class="HOEnZb"><div class="h5"><br>
<br>
John<br>
_______________________________________________<br>
HarfBuzz mailing list<br>
<a href="mailto:HarfBuzz@lists.freedesktop.org" target="_blank">HarfBuzz@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/harfbuzz" target="_blank">http://lists.freedesktop.org/mailman/listinfo/harfbuzz</a><br>
</div></div></blockquote></div><br>