goto considered harmful and confuses cppcheck.

This commit is contained in:
Hisham Muhammad 2014-04-21 18:55:58 -03:00
parent 2f0a4b3d3a
commit 4027e5ee44
1 changed files with 10 additions and 10 deletions

View File

@ -182,17 +182,17 @@ const char *ProcessList_treeStrUtf8[TREE_STR_COUNT] = {
static ssize_t xread(int fd, void *buf, size_t count) { static ssize_t xread(int fd, void *buf, size_t count) {
// Read some bytes. Retry on EINTR and when we don't get as many bytes as we requested. // Read some bytes. Retry on EINTR and when we don't get as many bytes as we requested.
size_t alreadyRead = 0; size_t alreadyRead = 0;
start:; for(;;) {
ssize_t res = read(fd, buf, count); ssize_t res = read(fd, buf, count);
if (res == -1 && errno == EINTR) goto start; if (res == -1 && errno == EINTR) continue;
if (res > 0) { if (res > 0) {
buf = ((char*)buf)+res; buf = ((char*)buf)+res;
count -= res; count -= res;
alreadyRead += res; alreadyRead += res;
}
if (res == -1) return -1;
if (count == 0 || res == 0) return alreadyRead;
} }
if (res == -1) return -1;
if (count == 0 || res == 0) return alreadyRead;
goto start;
} }
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList) { ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList) {