added safety to READ_INT macro
This commit is contained in:
parent
17808869b2
commit
f32f698d7f
1 changed files with 16 additions and 17 deletions
3
util.h
3
util.h
|
|
@ -19,7 +19,7 @@ inline char peek_next_nonws(std::istream& in) {
|
||||||
#define READ_INTO(str, targ, size, var, cond) { \
|
#define READ_INTO(str, targ, size, var, cond) { \
|
||||||
char * _p = targ; \
|
char * _p = targ; \
|
||||||
var = str.peek(); \
|
var = str.peek(); \
|
||||||
while (! str.eof() && (cond)) { \
|
while (! str.eof() && (cond) && _p - targ < size) { \
|
||||||
str.get(var); \
|
str.get(var); \
|
||||||
if (str.eof()) \
|
if (str.eof()) \
|
||||||
break; \
|
break; \
|
||||||
|
|
@ -31,7 +31,6 @@ inline char peek_next_nonws(std::istream& in) {
|
||||||
*_p++ = var; \
|
*_p++ = var; \
|
||||||
var = str.peek(); \
|
var = str.peek(); \
|
||||||
} \
|
} \
|
||||||
assert(_p < targ + ((size) - 1)); \
|
|
||||||
*_p = '\0'; \
|
*_p = '\0'; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue