1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:07:45 +00:00

LibC: Remove semicolon in definition of FD_ZERO

This causes problems in code of the form

  if (/* condition */)
    FD_ZERO(&thing);
  else
    do_other_thing();

Wrapping the call to memset() in a do/while block fixes the issue.
This commit is contained in:
Alex O'Brien 2022-03-06 20:50:19 +11:00 committed by Andreas Kling
parent 7d5d5b387e
commit ad1065e213

View file

@ -7,7 +7,10 @@
#pragma once #pragma once
#define FD_SETSIZE 1024 #define FD_SETSIZE 1024
#define FD_ZERO(set) memset((set), 0, sizeof(fd_set)); #define FD_ZERO(set) \
do { \
memset((set), 0, sizeof(fd_set)); \
} while (0)
#define FD_CLR(fd, set) ((set)->fds_bits[(fd / 8)] &= ~(1 << (fd) % 8)) #define FD_CLR(fd, set) ((set)->fds_bits[(fd / 8)] &= ~(1 << (fd) % 8))
#define FD_SET(fd, set) ((set)->fds_bits[(fd / 8)] |= (1 << (fd) % 8)) #define FD_SET(fd, set) ((set)->fds_bits[(fd / 8)] |= (1 << (fd) % 8))
#define FD_ISSET(fd, set) ((set)->fds_bits[(fd / 8)] & (1 << (fd) % 8)) #define FD_ISSET(fd, set) ((set)->fds_bits[(fd / 8)] & (1 << (fd) % 8))