[MediaPlayer] Apply GC.SuppressFinalize() (#554)
authorSangchul Lee <sangchul1011@gmail.com>
Tue, 20 Nov 2018 05:53:17 +0000 (14:53 +0900)
committerGitHub <noreply@github.com>
Tue, 20 Nov 2018 05:53:17 +0000 (14:53 +0900)
The 'disposing' parameter of Dispose() virtual method is also
used for its implementation according to the common usage.

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
src/Tizen.Multimedia.MediaPlayer/Player/Player.cs

index 46d9a72..87cc9eb 100644 (file)
@@ -132,6 +132,7 @@ namespace Tizen.Multimedia
         public void Dispose()
         {
             Dispose(true);
+            GC.SuppressFinalize(this);
         }
 
         /// <summary>
@@ -143,7 +144,12 @@ namespace Tizen.Multimedia
         [EditorBrowsable(EditorBrowsableState.Never)]
         protected virtual void Dispose(bool disposing)
         {
-            if (!_disposed)
+            if (_disposed)
+            {
+                return;
+            }
+
+            if (disposing)
             {
                 ReplaceDisplay(null);
 
@@ -152,19 +158,19 @@ namespace Tizen.Multimedia
                     try
                     {
                         _source.DetachFrom(this);
+                        _source = null;
                     }
                     catch (Exception e)
                     {
                         Log.Error(PlayerLog.Tag, e.ToString());
                     }
                 }
-                _source = null;
 
                 if (_handle != null)
                 {
                     _handle.Dispose();
+                    _disposed = true;
                 }
-                _disposed = true;
             }
         }