I discovered this by accident while trying to figure out where a certain
console message was coming from while debugging.

I saw this printed to the console when testing my (broken) code:

    Java Messsge:com/openalpr/jni/AlprException

Note the typo in "Messsge" (the class name that follows is specific to what
I was testing).

I couldn't find the string "Java Messsge" in any of my code or the library
I was trying out (OpenALPR).  Eventually I found it was in glass.dll and
traced it to the checkJavaException function in OleUtils.h, line 230.

On another note, I see that function is declared as "inline", though I
suspect the body of the "else" really doesn't need to be inlined and the
extra size it adds to the method could make it less likely to actually get
inlined. It seems the part that you want inlined is the if
(!env-ExceptionCheck()) { return S_OK; }. Wouldn't the rest run very rarely
and not benefit from being inlined?  If that code does get inlined it would
bloat the code unnecessarily.  The premature optimizer in me (it's an evil
I have trouble controlling) thinks this just makes stuff less
cache-friendly.  I would put it in another not-inlined method.  Also note
that using "else" is redundant.


Scott

Reply via email to