Jacek Caban : urlmon: Remove no longer needed binding value in task_t.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jun 1 06:48:48 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 349b93ae57a8a4c37f96a96ec0c6fba281edc6b4
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=349b93ae57a8a4c37f96a96ec0c6fba281edc6b4
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed May 31 19:48:23 2006 +0200
urlmon: Remove no longer needed binding value in task_t.
---
dlls/urlmon/binding.c | 41 +++++++++++++++--------------------------
1 files changed, 15 insertions(+), 26 deletions(-)
diff --git a/dlls/urlmon/binding.c b/dlls/urlmon/binding.c
index c70364e..20a95f1 100644
--- a/dlls/urlmon/binding.c
+++ b/dlls/urlmon/binding.c
@@ -51,7 +51,6 @@ typedef struct {
typedef struct _task_t {
enum task_enum task;
- Binding *binding;
struct _task_t *next;
union {
on_progress_data on_progress;
@@ -109,18 +108,18 @@ #define STREAM(x) ((IStream*) &(x)->lpSt
#define WM_MK_CONTINUE (WM_USER+101)
-static void push_task(task_t *task)
+static void push_task(Binding *binding, task_t *task)
{
task->next = NULL;
- EnterCriticalSection(&task->binding->section);
+ EnterCriticalSection(&binding->section);
- if(task->binding->task_queue_tail)
- task->binding->task_queue_tail->next = task;
+ if(binding->task_queue_tail)
+ binding->task_queue_tail->next = task;
else
- task->binding->task_queue_tail = task->binding->task_queue_head = task;
+ binding->task_queue_tail = binding->task_queue_head = task;
- LeaveCriticalSection(&task->binding->section);
+ LeaveCriticalSection(&binding->section);
}
static task_t *pop_task(Binding *binding)
@@ -141,13 +140,13 @@ static task_t *pop_task(Binding *binding
return ret;
}
-static void do_task(task_t *task)
+static void do_task(Binding *binding, task_t *task)
{
switch(task->task) {
case TASK_ON_PROGRESS: {
on_progress_data *data = &task->data.on_progress;
- IBindStatusCallback_OnProgress(task->binding->callback, data->progress,
+ IBindStatusCallback_OnProgress(binding->callback, data->progress,
data->progress_max, data->status_code, data->status_text);
HeapFree(GetProcessHeap(), 0, data->status_text);
@@ -156,9 +155,9 @@ static void do_task(task_t *task)
break;
}
case TASK_SWITCH:
- task->binding->continue_call++;
- IInternetProtocol_Continue(task->binding->protocol, task->data.protocol_data);
- task->binding->continue_call--;
+ binding->continue_call++;
+ IInternetProtocol_Continue(binding->protocol, task->data.protocol_data);
+ binding->continue_call--;
}
}
@@ -166,10 +165,8 @@ static void do_tasks(Binding *This)
{
task_t *task;
- while((task = pop_task(This))) {
- do_task(task);
- IBinding_Release(BINDING(task->binding));
- }
+ while((task = pop_task(This)))
+ do_task(This, task);
}
static LRESULT WINAPI notif_wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -240,10 +237,6 @@ static void on_progress(Binding *This, U
task = HeapAlloc(GetProcessHeap(), 0, sizeof(task_t));
task->task = TASK_ON_PROGRESS;
-
- IBinding_AddRef(BINDING(This));
- task->binding = This;
-
task->data.on_progress.progress = progress;
task->data.on_progress.progress_max = progress_max;
task->data.on_progress.status_code = status_code;
@@ -257,7 +250,7 @@ static void on_progress(Binding *This, U
task->data.on_progress.status_text = NULL;
}
- push_task(task);
+ push_task(This, task);
if(GetCurrentThreadId() != This->apartment_thread) {
IBinding_AddRef(BINDING(This));
@@ -772,13 +765,9 @@ static HRESULT WINAPI InternetProtocolSi
task = HeapAlloc(GetProcessHeap(), 0, sizeof(task_t));
task->task = TASK_SWITCH;
-
- IBinding_AddRef(BINDING(This));
- task->binding = This;
-
task->data.protocol_data = pProtocolData;
- push_task(task);
+ push_task(This, task);
IBinding_AddRef(BINDING(This));
PostMessageW(This->notif_hwnd, WM_MK_CONTINUE, 0, (LPARAM)This);
More information about the wine-cvs
mailing list