I do debug this code:
result = conn_process(conn, 1, 0);
if (result == CG_ERR_OK) continue;
if (result == CG_ERR_TIMEOUT)
{
break; // i'm here!
}
As in debugger i’m at break; I assume that result == CG_ERR_TIMEOUT is true. In Locals I do see:
result 131075 unsigned int
In Watch I do see:
CG_ERR_TIMEOUT error: identifier 'CG_ERR_TIMEOUT' out of scope
Going to definition shows me such code:
enum {
CG_ERR_OK = 0,
CG_ERR_INTERNAL = CG_RANGE_BEGIN,
CG_ERR_INVALIDARGUMENT,
CG_ERR_UNSUPPORTED,
CG_ERR_TIMEOUT,
CG_ERR_MORE,
CG_ERR_INCORRECTSTATE,
CG_ERR_DUPLICATEID,
CG_ERR_BUFFERTOOSMALL,
CG_ERR_OVERFLOW,
CG_ERR_UNDERFLOW,
CG_RANGE_END
};
So I just wonder why CG_ERR_TIMEOUT == 131075. What a strange magic number?
Because CG_RANGE_BEGIN is 131072 (which is 0x20000).
From now on every enum value is the previous one plus 1: