[RTL]
[reactos.git] / lib / rtl / actctx.c
index 7960f58..d5a0d39 100644 (file)
@@ -575,12 +575,12 @@ static ACTIVATION_CONTEXT *check_actctx( HANDLE h )
 
 static inline void actctx_addref( ACTIVATION_CONTEXT *actctx )
 {
-    _InterlockedExchangeAdd( &actctx->ref_count, 1 );
+    InterlockedExchangeAdd( &actctx->ref_count, 1 );
 }
 
 static void actctx_release( ACTIVATION_CONTEXT *actctx )
 {
-    if (_InterlockedExchangeAdd( &actctx->ref_count, -1 ) == 1)
+    if (InterlockedExchangeAdd( &actctx->ref_count, -1 ) == 1)
     {
         unsigned int i, j;
 
@@ -1578,6 +1578,7 @@ static NTSTATUS parse_manifest( struct actctx_loader* acl, struct assembly_ident
     {
         /* let's assume utf-8 for now */
         int len;
+        WCHAR *new_buff;
 
         _SEH2_TRY
         {
@@ -1591,20 +1592,19 @@ static NTSTATUS parse_manifest( struct actctx_loader* acl, struct assembly_ident
         _SEH2_END;
 
         DPRINT("len = %x\n", len);
-        WCHAR *new_buff;
 
         if (len == -1)
         {
             DPRINT1( "utf-8 conversion failed\n" );
             return STATUS_SXS_CANT_GEN_ACTCTX;
         }
-        if (!(new_buff = RtlAllocateHeap( RtlGetProcessHeap(), HEAP_ZERO_MEMORY, len * sizeof(WCHAR) )))
+        if (!(new_buff = RtlAllocateHeap( RtlGetProcessHeap(), HEAP_ZERO_MEMORY, len)))
             return STATUS_NO_MEMORY;
 
-        mbstowcs( new_buff, buffer, len);
+        mbstowcs( new_buff, buffer, size);
         xmlbuf.ptr = new_buff;
-        DPRINT("Buffer %S\n", new_buff);
-        xmlbuf.end = xmlbuf.ptr + len;
+
+        xmlbuf.end = xmlbuf.ptr + len / sizeof(WCHAR);
         status = parse_manifest_buffer( acl, assembly, ai, &xmlbuf );
 
         RtlFreeHeap( RtlGetProcessHeap(), 0, new_buff );