See my updated attachment.
In this version I did not try to do cleanups, instead I
declare errorStr as local variable.
As for "check", I find that it gets redefined in
graph/viewAlone/viewAlone.h, graph/viewman/viewman.h:
#define check(code) checker(code,__LINE__,"")
Also I don't like its overhead when we only read a few bytes,
I hope in the future we can avoid the overhead if we are
building in release mode (aka when there is no DEBUG defined).
- Qian