In System.Drawing.Drawing2D:
[mono.git] / mcs / class / System.Drawing / System.Drawing.Drawing2D / Matrix.cs
index b56d9d33eb3b1264edb4a67c9f4b69a2e66da5f7..0a0dc1b644c0646d99912956eb258ab061777310 100644 (file)
@@ -131,8 +131,13 @@ namespace System.Drawing.Drawing2D
         
                 public void Dispose ()
                 {
-                       Status status = GDIPlus.GdipDeleteMatrix (nativeMatrix);
-                       GDIPlus.CheckStatus (status);
+                       if (nativeMatrix != IntPtr.Zero) {
+                               Status status = GDIPlus.GdipDeleteMatrix (nativeMatrix);
+                               GDIPlus.CheckStatus (status);
+                               nativeMatrix = IntPtr.Zero;
+                       }
+
+                       GC.SuppressFinalize (true);
                 }                       
         
                 public override bool Equals (object obj)