| @@ -103,7 +103,7 @@ namespace Discord.Audio | |||||
| { | { | ||||
| StopAsync().GetAwaiter().GetResult(); | StopAsync().GetAwaiter().GetResult(); | ||||
| ApiClient.Dispose(); | ApiClient.Dispose(); | ||||
| if (_secretKeyHandle.IsAllocated) | |||||
| if (_secretKeyHandle.Target != null) | |||||
| _secretKeyHandle.Free(); | _secretKeyHandle.Free(); | ||||
| _isDisposed = true; | _isDisposed = true; | ||||
| } | } | ||||
| @@ -260,9 +260,9 @@ namespace Discord.Audio | |||||
| if (data.Mode != DiscordVoiceAPIClient.Mode) | if (data.Mode != DiscordVoiceAPIClient.Mode) | ||||
| throw new InvalidOperationException($"Discord selected an unexpected mode: {data.Mode}"); | throw new InvalidOperationException($"Discord selected an unexpected mode: {data.Mode}"); | ||||
| _secretKey = data.SecretKey; | |||||
| if (_secretKeyHandle != null) | |||||
| if (_secretKeyHandle.Target != null) | |||||
| _secretKeyHandle.Free(); | _secretKeyHandle.Free(); | ||||
| _secretKey = data.SecretKey; | |||||
| _secretKeyHandle = GCHandle.Alloc(data.SecretKey, GCHandleType.Pinned); | _secretKeyHandle = GCHandle.Alloc(data.SecretKey, GCHandleType.Pinned); | ||||
| SecretKeyPtr = _secretKeyHandle.AddrOfPinnedObject(); | SecretKeyPtr = _secretKeyHandle.AddrOfPinnedObject(); | ||||