]> OCCT Git - occt.git/commitdiff
Foundation classes - Leak of WinAPI resources. (#625)
authorDmitrii Kulikov <164657232+AtheneNoctuaPt@users.noreply.github.com>
Fri, 18 Jul 2025 15:58:59 +0000 (16:58 +0100)
committerGitHub <noreply@github.com>
Fri, 18 Jul 2025 15:58:59 +0000 (16:58 +0100)
- Replaces raw IWICBitmapFlipRotator pointer with Image_ComPtr smart pointer wrapper
- Updates pointer access patterns to use smart pointer methods (.ChangePtr() and .get())
- Maintains existing functionality while improving resource management

src/Visualization/TKService/Image/Image_AlienPixMap.cxx

index 6ed2b767971e2c41ba1d93e5a985ce90e6f16507..7e14e9e62d5bb9911e03ce2b905c0e03caa489b3 100644 (file)
@@ -922,13 +922,13 @@ bool Image_AlienPixMap::Load(const Standard_Byte*           theData,
     aWicSrc = aWicConvertedFrame.get();
   }
 
-  IWICBitmapFlipRotator* aRotator;
-  bool                   isTopDown = true;
-  if (aWicImgFactory->CreateBitmapFlipRotator(&aRotator) == S_OK
+  Image_ComPtr<IWICBitmapFlipRotator> aRotator;
+  bool                                isTopDown = true;
+  if (aWicImgFactory->CreateBitmapFlipRotator(&aRotator.ChangePtr()) == S_OK
       && aRotator->Initialize(aWicSrc, WICBitmapTransformFlipVertical) == S_OK)
   {
     isTopDown = false;
-    aWicSrc   = aRotator;
+    aWicSrc   = aRotator.get();
   }
 
   if (aWicSrc->CopyPixels(NULL, (UINT)SizeRowBytes(), (UINT)SizeBytes(), ChangeData()) != S_OK)