chemoelectric

Example of reducing McCabe cyclometric complexity

Apr 15th, 2026
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | Source Code | 0 0
  1. diff --git a/src/libhiha/token_t.c b/src/libhiha/token_t.c
  2. --- a/src/libhiha/token_t.c
  3. +++ b/src/libhiha/token_t.c
  4. @@ -445,6 +445,15 @@
  5.      }
  6.  }
  7.  
  8. +
  9. +static void
  10. +make_serialized_line_available (token_getter_from_serialized_tokens_t g,
  11. +                                token_t *tok, ssize_t *nread)
  12. +{
  13. +  if (0 <= *nread && *tok == NULL)
  14. +    *nread = getline (&g->buf, &g->nbuf, g->f);
  15. +}
  16. +
  17.  static void
  18.  get_token_from_serialized_tokens (token_getter_t getter, token_t *tok,
  19.                                    const char **error_message)
  20. @@ -453,8 +462,9 @@
  21.      (token_getter_from_serialized_tokens_t) getter;
  22.    *error_message = NULL;
  23.  
  24. +  ssize_t nread = 0;
  25.    *tok = NULL;
  26. -  ssize_t nread = getline (&g->buf, &g->nbuf, g->f);
  27. +  make_serialized_line_available (g, tok, &nread);
  28.    while (0 <= nread && *tok == NULL)
  29.      {
  30.        switch (g->buf[0])
  31. @@ -475,8 +485,7 @@
  32.            nread = -100;
  33.            break;
  34.          }
  35. -      if (0 <= nread && *tok == NULL)
  36. -        nread = getline (&g->buf, &g->nbuf, g->f);
  37. +      make_serialized_line_available (g, tok, &nread);
  38.      }
  39.    if (*tok == NULL)
  40.      {
  41.  
Advertisement
Add Comment
Please, Sign In to add comment