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