diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2014-04-21 18:55:58 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2014-04-21 18:55:58 -0300 |
commit | 4027e5ee445996f4455b74f7212cf3dc98cc6fe4 (patch) | |
tree | f98c51ca4a2948cb4eb13d49f4b5d2f7f2b2a15e /ProcessList.c | |
parent | 2f0a4b3d3a6e6fefd06c7973e54bd7da69dfa0e9 (diff) |
goto considered harmful and confuses cppcheck.
Diffstat (limited to 'ProcessList.c')
-rw-r--r-- | ProcessList.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/ProcessList.c b/ProcessList.c index 10ea25a1..1d92abb6 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -182,17 +182,17 @@ const char *ProcessList_treeStrUtf8[TREE_STR_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. size_t alreadyRead = 0; - start:; - ssize_t res = read(fd, buf, count); - if (res == -1 && errno == EINTR) goto start; - if (res > 0) { - buf = ((char*)buf)+res; - count -= res; - alreadyRead += res; + for(;;) { + ssize_t res = read(fd, buf, count); + if (res == -1 && errno == EINTR) continue; + if (res > 0) { + buf = ((char*)buf)+res; + count -= 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) { |