[PATCH 26/27] [Kernel32]: ActCtx: added support for actctx zombification

Eric Pouech eric.pouech at wanadoo.fr
Mon May 7 14:52:33 CDT 2007


---

 dlls/kernel32/actctx.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/kernel32/actctx.c b/dlls/kernel32/actctx.c
index 1070f08..32dc378 100644
--- a/dlls/kernel32/actctx.c
+++ b/dlls/kernel32/actctx.c
@@ -51,7 +51,8 @@ static const WCHAR dotManifestW[] = {'.','m','a','n','i','f','e','s','t','\0'};
 
 #define ACTCTX_FAKE_HANDLE ((HANDLE) 0xf00baa)
 
-#define ACTCTX_MAGIC       0xC07E3E11
+#define ACTCTX_MAGIC            0xC07E3E11
+#define ACTCTX_MAGIC_ZOMBIE     0x3E11C07E
 
 typedef struct
 {
@@ -1641,6 +1642,9 @@ static struct actctx* check_actctx(HANDLE h)
     switch (actctx->magic)
     {
     case ACTCTX_MAGIC: return actctx;
+    case ACTCTX_MAGIC_ZOMBIE:
+        DebugBreak();
+        /* fall through */
     default:
         SetLastError(ERROR_INVALID_HANDLE);
         return NULL;
@@ -1837,10 +1841,16 @@ void WINAPI ReleaseActCtx(HANDLE hActCtx)
  */
 BOOL WINAPI ZombifyActCtx(HANDLE hActCtx)
 {
-  FIXME("%p\n", hActCtx);
-  if (hActCtx != ACTCTX_FAKE_HANDLE)
+    struct actctx*      actctx;
+
+    TRACE("%p\n", hActCtx);
+
+    if ((actctx = check_actctx(hActCtx)))
+    {
+        actctx->magic = ACTCTX_MAGIC_ZOMBIE;
+        return TRUE;
+    }
     return FALSE;
-  return TRUE;
 }
 
 /***********************************************************************





More information about the wine-patches mailing list