Conditional Evaluation

Source Insight evaluates the whole conditional expression each time. Expressions are not short-circuited. This is an important difference from the way that C conditional expressions are evaluated. In C, the expres­sion may be partially evaluated. Consider the following conditional expression:

if (hbuf != hNil && GetBufLineCount(hbuf) > x)

This conditional expression would lead to an error in Source Insight if hbuf is equal to hNil. In C, the evalua­tion would be terminated after determining that hbuf != hNil. In Source Insight, the whole expression is evaluated. In this case, causing an error since hNil would be passed as the buffer handle to GetBufLine­Count.

In Source Insight, this statement would have to written like this:

if (hbuf != hNil)

    if (GetBufLineCount(hbuf) > x)