D29808: KSysGuard Network Plugin: Don't use std::regex to parse the network files.

Martin Tobias Holmedahl Sandsmark noreply at phabricator.kde.org
Wed May 20 09:18:58 BST 2020


sandsmark added inline comments.

INLINE COMMENTS

> ConnectionMapping.cpp:157
> +        // Should be within the first 16 characters.
> +        size_t data_start = data.find(':');
> +        if (data_start >= 16) {

if we're going for ultra optimized, const everything I guess.

> ConnectionMapping.cpp:167
> +        // Check for IPv4.
> +        if (data.size() < data_start + 87 + 1) {
> +            continue;

instead of 87 + 1, maybe have a `constexpr int lineLength = strlen("0: 00000000000000000000000001000000:0277 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 16741");` above with the comment?
or:

  constexpr const char *exampleLine = "0: 00000000000000000000000001000000:0277 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 16741";
      constexpr int lineLength = strlen(exampleLine);

both more understandable and less prone to accidentally putting in the wrong number.

same with all other magic string offset numbers here.

> ConnectionMapping.cpp:176
> +            char *const ipv4 = &data[data_start + 2];
> +            ipv4[8] = '\0';
> +            localAddress.address[3] = (uint32_t)strtoul(ipv4, nullptr, 16);

strtoul stops at the first non-digit, so is this really necessary?

> ConnectionMapping.cpp:203
> +                    ipv6[32] = '\0';
> +                    localAddress.address[3] = (uint32_t)strtoul(&ipv6[24], nullptr, 16);
> +                } else {

I prefer the more c++-ish cast of `uint32_t(foo);` (I think I got that from the Qt code style guidelines).

REPOSITORY
  R106 KSysguard

REVISION DETAIL
  https://phabricator.kde.org/D29808

To: dkorth, ahiemstra
Cc: sandsmark, ahiemstra, jpalecek, plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200520/14b262a8/attachment-0001.htm>


More information about the Plasma-devel mailing list