Jacek Caban : jscript: Added IActiveScript::Close implementation.
Alexandre Julliard
julliard at winehq.org
Wed Sep 3 07:43:23 CDT 2008
Module: wine
Branch: master
Commit: 9efb87ea88a8a47afdc3710dd210ce31ae7e38d8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9efb87ea88a8a47afdc3710dd210ce31ae7e38d8
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Sep 1 01:17:53 2008 +0200
jscript: Added IActiveScript::Close implementation.
---
dlls/jscript/jscript.c | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c
index d70db46..ed2dd47 100644
--- a/dlls/jscript/jscript.c
+++ b/dlls/jscript/jscript.c
@@ -120,10 +120,10 @@ static ULONG WINAPI JScript_Release(IActiveScript *iface)
TRACE("(%p) ref=%d\n", iface, ref);
if(!ref) {
+ if(This->ctx && This->ctx->state != SCRIPTSTATE_CLOSED)
+ IActiveScript_Close(ACTSCRIPT(This));
if(This->ctx)
script_release(This->ctx);
- if(This->site)
- IActiveScriptSite_Release(This->site);
heap_free(This);
unlock_module();
}
@@ -191,8 +191,21 @@ static HRESULT WINAPI JScript_GetScriptState(IActiveScript *iface, SCRIPTSTATE *
static HRESULT WINAPI JScript_Close(IActiveScript *iface)
{
JScript *This = ACTSCRIPT_THIS(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->()\n", This);
+
+ if(This->thread_id != GetCurrentThreadId())
+ return E_UNEXPECTED;
+
+ if(This->ctx)
+ change_state(This, SCRIPTSTATE_CLOSED);
+
+ if(This->site) {
+ IActiveScriptSite_Release(This->site);
+ This->site = NULL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI JScript_AddNamedItem(IActiveScript *iface,
More information about the wine-cvs
mailing list