Skip to content

Commit

Permalink
Use String#intern for guild features and atoms (#2235)
Browse files Browse the repository at this point in the history
  • Loading branch information
MinnDevelopment committed Sep 11, 2022
1 parent 9b32e6b commit 91d50b9
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
Expand Up @@ -247,7 +247,7 @@ private static Object unpackAtom(ByteBuffer buffer, Charset charset, int length)
case "true": return true;
case "false": return false;
case "nil": return null;
default: return value;
default: return value.intern();
}
}

Expand Down
Expand Up @@ -270,10 +270,10 @@ public GuildImpl createGuild(long guildId, DataObject guildJson, TLongObjectMap<
guildView.getMap().put(guildId, guildObj);
}

guildObj.setFeatures(featuresArray.map(it ->
StreamSupport.stream(it.spliterator(), false)
.map(String::valueOf)
.collect(Collectors.toSet())
guildObj.setFeatures(featuresArray.map(array ->
array.stream(DataArray::getString)
.map(String::intern) // Prevent allocating the same feature string over and over
.collect(Collectors.toSet())
).orElse(Collections.emptySet()));

SnowflakeCacheViewImpl<Role> roleView = guildObj.getRolesView();
Expand Down
Expand Up @@ -31,7 +31,6 @@
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

public class GuildUpdateHandler extends SocketHandler
{
Expand Down Expand Up @@ -94,7 +93,7 @@ protected Long handleInternally(DataObject content)
if (!content.isNull("features"))
{
DataArray featureArr = content.getArray("features");
features = StreamSupport.stream(featureArr.spliterator(), false).map(String::valueOf).collect(Collectors.toSet());
features = featureArr.stream(DataArray::getString).map(String::intern).collect(Collectors.toSet());
}
else
{
Expand Down

0 comments on commit 91d50b9

Please sign in to comment.