| @@ -116,15 +116,18 @@ IPAddress::IPAddress (const String& adr) | |||||
| if (tokens.contains ({})) // if :: shorthand has been used | if (tokens.contains ({})) // if :: shorthand has been used | ||||
| { | { | ||||
| int idx = tokens.indexOf (StringRef()); | |||||
| auto idx = tokens.indexOf ({}); | |||||
| tokens.set (idx, "0"); | tokens.set (idx, "0"); | ||||
| tokens.removeEmptyStrings(); | |||||
| // mapped IPv4 address will be treated as a single token, so pad the end of the StringArray | |||||
| if (tokens[tokens.size() - 1].containsChar ('.')) | |||||
| tokens.add ({}); | |||||
| while (tokens.size() < 8) | while (tokens.size() < 8) | ||||
| tokens.insert (idx, "0"); | tokens.insert (idx, "0"); | ||||
| } | } | ||||
| tokens.removeEmptyStrings(); | |||||
| for (int i = 0; i < 8; ++i) | for (int i = 0; i < 8; ++i) | ||||
| { | { | ||||
| if (i == 6 && isIPv4MappedAddress (IPAddress (address, true))) | if (i == 6 && isIPv4MappedAddress (IPAddress (address, true))) | ||||