Misha Koshelev : urlmon: Call IInternetProtocolSink_Release and ReleaseStgMedium in HttpProtocol where native does .

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 16 05:38:38 CDT 2007


Module: wine
Branch: master
Commit: 5a11a1201fc4fedf4cd8b3ee9534f0164c16f081
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5a11a1201fc4fedf4cd8b3ee9534f0164c16f081

Author: Misha Koshelev <mk144210 at bcm.edu>
Date:   Thu Aug 16 00:03:49 2007 -0500

urlmon: Call IInternetProtocolSink_Release and ReleaseStgMedium in HttpProtocol where native does.

---

 dlls/urlmon/http.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c
index ac4b554..4b2eae5 100644
--- a/dlls/urlmon/http.c
+++ b/dlls/urlmon/http.c
@@ -142,11 +142,6 @@ static void HTTPPROTOCOL_AllDataRead(HttpProtocol *This)
 
 static void HTTPPROTOCOL_Close(HttpProtocol *This)
 {
-    if (This->protocol_sink)
-    {
-        IInternetProtocolSink_Release(This->protocol_sink);
-        This->protocol_sink = 0;
-    }
     if (This->http_negotiate)
     {
         IHttpNegotiate_Release(This->http_negotiate);
@@ -173,11 +168,6 @@ static void HTTPPROTOCOL_Close(HttpProtocol *This)
             HeapFree(GetProcessHeap(), 0, This->full_header);
         This->full_header = 0;
     }
-    if (This->bind_info.cbSize)
-    {
-        ReleaseBindInfo(&This->bind_info);
-        memset(&This->bind_info, 0, sizeof(This->bind_info));
-    }
     This->flags = 0;
 }
 
@@ -214,6 +204,18 @@ static void CALLBACK HTTPPROTOCOL_InternetStatusCallback(
         else
             IInternetProtocol_Continue((IInternetProtocol *)This, &data);
         return;
+    case INTERNET_STATUS_HANDLE_CLOSING:
+        if (This->protocol_sink)
+        {
+            IInternetProtocolSink_Release(This->protocol_sink);
+            This->protocol_sink = 0;
+        }
+        if (This->bind_info.cbSize)
+        {
+            ReleaseBindInfo(&This->bind_info);
+            memset(&This->bind_info, 0, sizeof(This->bind_info));
+        }
+        return;
     default:
         WARN("Unhandled Internet status callback %d\n", dwInternetStatus);
         return;




More information about the wine-cvs mailing list