Browse Source

Add null checks to DiscordSocketClient's RemoveXXX functions

tags/1.0-rc
RogueException 8 years ago
parent
commit
c0db4bbfa3
1 changed files with 12 additions and 6 deletions
  1. +12
    -6
      src/Discord.Net/WebSocket/DiscordSocketClient.cs

+ 12
- 6
src/Discord.Net/WebSocket/DiscordSocketClient.cs View File

@@ -359,10 +359,13 @@ namespace Discord.WebSocket
internal SocketGuild RemoveGuild(ulong id) internal SocketGuild RemoveGuild(ulong id)
{ {
var guild = DataStore.RemoveGuild(id); var guild = DataStore.RemoveGuild(id);
foreach (var channel in guild.Channels)
guild.RemoveChannel(channel.Id);
foreach (var user in guild.Members)
guild.RemoveUser(user.Id);
if (guild != null)
{
foreach (var channel in guild.Channels)
guild.RemoveChannel(channel.Id);
foreach (var user in guild.Members)
guild.RemoveUser(user.Id);
}
return guild; return guild;
} }
@@ -401,8 +404,11 @@ namespace Discord.WebSocket
internal ISocketChannel RemovePrivateChannel(ulong id) internal ISocketChannel RemovePrivateChannel(ulong id)
{ {
var channel = DataStore.RemoveChannel(id) as ISocketPrivateChannel; var channel = DataStore.RemoveChannel(id) as ISocketPrivateChannel;
foreach (var recipient in channel.Recipients)
recipient.User.RemoveRef(this);
if (channel != null)
{
foreach (var recipient in channel.Recipients)
recipient.User.RemoveRef(this);
}
return channel; return channel;
} }




Loading…
Cancel
Save