Mike McCormack : msi: Clean upstore_binary_to_temp.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 13 06:37:20 CST 2006


Module: wine
Branch: master
Commit: 0b7a17d28207311fcb9e47c6afba9869d11db108
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0b7a17d28207311fcb9e47c6afba9869d11db108

Author: Mike McCormack <mike at codeweavers.com>
Date:   Mon Nov 13 16:34:37 2006 +0900

msi: Clean upstore_binary_to_temp.

---

 dlls/msi/custom.c |   77 ++++++++++++++++++++++++----------------------------
 1 files changed, 36 insertions(+), 41 deletions(-)

diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c
index 9c0a7d2..841e463 100644
--- a/dlls/msi/custom.c
+++ b/dlls/msi/custom.c
@@ -284,62 +284,57 @@ end:
 }
 
 
-static UINT store_binary_to_temp(MSIPACKAGE *package, LPCWSTR source, 
+static UINT store_binary_to_temp(MSIPACKAGE *package, LPCWSTR source,
                                 LPWSTR tmp_file)
 {
-    DWORD sz=MAX_PATH;
+    static const WCHAR query[] = {
+        'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
+        '`','B','i' ,'n','a','r','y','`',' ','W','H','E','R','E',' ',
+        '`','N','a','m','e','`',' ','=',' ','\'','%','s','\'',0};
+    UINT rc;
+    MSIRECORD *row = 0;
+    HANDLE file;
+    CHAR buffer[1024];
     static const WCHAR f1[] = {'m','s','i',0};
     WCHAR fmt[MAX_PATH];
+    DWORD sz = MAX_PATH;
 
     if (MSI_GetPropertyW(package, cszTempFolder, fmt, &sz) != ERROR_SUCCESS)
-        GetTempPathW(MAX_PATH,fmt);
+        GetTempPathW(MAX_PATH, fmt);
 
-    if (GetTempFileNameW(fmt,f1,0,tmp_file) == 0)
+    if (GetTempFileNameW(fmt, f1, 0, tmp_file) == 0)
     {
         TRACE("Unable to create file\n");
         return ERROR_FUNCTION_FAILED;
     }
-    else
-    {
-        /* write out the file */
-        UINT rc;
-        MSIRECORD * row = 0;
-        static const WCHAR fmt[] =
-        {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
-         '`','B','i' ,'n','a','r','y','`',' ','W','H','E','R','E',
-         ' ','`','N','a','m','e','`',' ','=',' ','\'','%','s','\'',0};
-        HANDLE the_file;
-        CHAR buffer[1024];
-
-        the_file = CreateFileW(tmp_file, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
-                           FILE_ATTRIBUTE_NORMAL, NULL);
-    
-        if (the_file == INVALID_HANDLE_VALUE)
-            return ERROR_FUNCTION_FAILED;
 
-        row = MSI_QueryGetRecord(package->db, fmt, source);
-        if (!row)
-            return ERROR_FUNCTION_FAILED;
+    /* write out the file */
+    file = CreateFileW(tmp_file, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
+                       FILE_ATTRIBUTE_NORMAL, NULL);
+    if (file == INVALID_HANDLE_VALUE)
+        return ERROR_FUNCTION_FAILED;
 
-        do 
-        {
-            DWORD write;
-            sz = 1024;
-            rc = MSI_RecordReadStream(row,2,buffer,&sz);
-            if (rc != ERROR_SUCCESS)
-            {
-                ERR("Failed to get stream\n");
-                CloseHandle(the_file);  
-                DeleteFileW(tmp_file);
-                break;
-            }
-            WriteFile(the_file,buffer,sz,&write,NULL);
-        } while (sz == 1024);
+    row = MSI_QueryGetRecord(package->db, query, source);
+    if (!row)
+        return ERROR_FUNCTION_FAILED;
 
-        CloseHandle(the_file);
+    do
+    {
+        DWORD write;
+        sz = sizeof buffer;
+        rc = MSI_RecordReadStream(row, 2, buffer, &sz);
+        if (rc != ERROR_SUCCESS)
+        {
+            ERR("Failed to get stream\n");
+            CloseHandle(file);
+            DeleteFileW(tmp_file);
+            break;
+        }
+        WriteFile(file, buffer, sz, &write, NULL);
+    } while (sz == sizeof buffer);
 
-        msiobj_release(&row->hdr);
-    }
+    CloseHandle(file);
+    msiobj_release(&row->hdr);
 
     return ERROR_SUCCESS;
 }




More information about the wine-cvs mailing list