MSI: use MSI_RecordGetString in more actions
Mike McCormack
mike at codeweavers.com
Tue Jun 7 21:01:54 CDT 2005
ChangeLog:
* use MSI_RecordGetString in more actions
-------------- next part --------------
Index: dlls/msi/action.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/action.c,v
retrieving revision 1.137
diff -u -p -r1.137 action.c
--- dlls/msi/action.c 7 Jun 2005 21:34:05 -0000 1.137
+++ dlls/msi/action.c 8 Jun 2005 02:01:31 -0000
@@ -1534,9 +1534,8 @@ static UINT ACTION_CreateFolders(MSIPACK
while (1)
{
- WCHAR dir[0x100];
+ LPCWSTR dir;
LPWSTR full_path;
- DWORD sz;
MSIRECORD *row = NULL, *uirow;
rc = MSI_ViewFetch(view,&row);
@@ -1546,17 +1545,14 @@ static UINT ACTION_CreateFolders(MSIPACK
break;
}
- sz=0x100;
- rc = MSI_RecordGetStringW(row,1,dir,&sz);
-
- if (rc!= ERROR_SUCCESS)
+ dir = MSI_RecordGetString(row,1);
+ if (!dir)
{
ERR("Unable to get folder id \n");
msiobj_release(&row->hdr);
continue;
}
- sz = MAX_PATH;
full_path = resolve_folder(package,dir,FALSE,FALSE,&folder);
if (!full_path)
{
@@ -1715,8 +1711,7 @@ static void load_feature(MSIPACKAGE* pac
}
while (1)
{
- DWORD sz = 0x100;
- WCHAR buffer[0x100];
+ LPCWSTR component;
DWORD rc;
INT c_indx;
INT cnt = package->features[index].ComponentCount;
@@ -1725,14 +1720,13 @@ static void load_feature(MSIPACKAGE* pac
if (rc != ERROR_SUCCESS)
break;
- sz = 0x100;
- MSI_RecordGetStringW(row2,1,buffer,&sz);
+ component = MSI_RecordGetString(row2,1);
/* check to see if the component is already loaded */
- c_indx = get_loaded_component(package,buffer);
+ c_indx = get_loaded_component(package,component);
if (c_indx != -1)
{
- TRACE("Component %s already loaded at %i\n", debugstr_w(buffer),
+ TRACE("Component %s already loaded at %i\n", debugstr_w(component),
c_indx);
package->features[index].Components[cnt] = c_indx;
package->features[index].ComponentCount ++;
@@ -1740,7 +1734,7 @@ static void load_feature(MSIPACKAGE* pac
continue;
}
- rc = MSI_OpenQuery(package->db, &view2, Query2, buffer);
+ rc = MSI_OpenQuery(package->db, &view2, Query2, component);
if (rc != ERROR_SUCCESS)
{
msiobj_release( &row2->hdr );
@@ -2583,10 +2577,9 @@ static UINT ACTION_CostFinalize(MSIPACKA
while (1)
{
- WCHAR name[0x100];
+ LPCWSTR name;
LPWSTR path;
MSIRECORD * row = 0;
- DWORD sz;
rc = MSI_ViewFetch(view,&row);
if (rc != ERROR_SUCCESS)
@@ -2595,8 +2588,7 @@ static UINT ACTION_CostFinalize(MSIPACKA
break;
}
- sz=0x100;
- MSI_RecordGetStringW(row,1,name,&sz);
+ name = MSI_RecordGetString(row,1);
/* This helper function now does ALL the work */
TRACE("Dir %s ...\n",debugstr_w(name));
@@ -2710,9 +2702,8 @@ static UINT ACTION_CostFinalize(MSIPACKA
while (1)
{
- WCHAR Feature[0x100];
+ LPCWSTR Feature;
MSIRECORD * row = 0;
- DWORD sz;
int feature_index;
rc = MSI_ViewFetch(view,&row);
@@ -2723,16 +2714,15 @@ static UINT ACTION_CostFinalize(MSIPACKA
break;
}
- sz = 0x100;
- MSI_RecordGetStringW(row,1,Feature,&sz);
+ Feature = MSI_RecordGetString(row,1);
feature_index = get_loaded_feature(package,Feature);
if (feature_index < 0)
ERR("FAILED to find loaded feature %s\n",debugstr_w(Feature));
else
{
- LPWSTR Condition;
- Condition = load_dynamic_stringW(row,3);
+ LPCWSTR Condition;
+ Condition = MSI_RecordGetString(row,3);
if (MSI_EvaluateConditionW(package,Condition) ==
MSICONDITION_TRUE)
@@ -2742,7 +2732,6 @@ static UINT ACTION_CostFinalize(MSIPACKA
debugstr_w(Feature), level);
package->features[feature_index].Level = level;
}
- HeapFree(GetProcessHeap(),0,Condition);
}
msiobj_release(&row->hdr);
@@ -2782,7 +2771,7 @@ static UINT ACTION_CostFinalize(MSIPACKA
/*
* This is a helper function for handling embedded cabinet media
*/
-static UINT writeout_cabinet_stream(MSIPACKAGE *package, WCHAR* stream_name,
+static UINT writeout_cabinet_stream(MSIPACKAGE *package, LPCWSTR stream_name,
WCHAR* source)
{
UINT rc;
@@ -3036,8 +3025,8 @@ static UINT ready_media_for_file(MSIPACK
'`','L','a','s','t','S','e','q','u','e','n','c','e','`',' ','>','=',
' ','%', 'i',' ','O','R','D','E','R',' ','B','Y',' ',
'`','L','a','s','t','S','e','q','u','e','n','c','e','`',0};
- WCHAR cab[0x100];
- DWORD sz=0x100;
+ LPCWSTR cab;
+ DWORD sz;
INT seq;
static UINT last_sequence = 0;
@@ -3061,10 +3050,9 @@ static UINT ready_media_for_file(MSIPACK
seq = MSI_RecordGetInteger(row,2);
last_sequence = seq;
- if (!MSI_RecordIsNull(row,4))
+ cab = MSI_RecordGetString(row,4);
+ if (cab)
{
- sz=0x100;
- MSI_RecordGetStringW(row,4,cab,&sz);
TRACE("Source is CAB %s\n",debugstr_w(cab));
/* the stream does not contain the # character */
if (cab[0]=='#')
@@ -3313,14 +3301,13 @@ static UINT ACTION_DuplicateFiles(MSIPAC
while (1)
{
- WCHAR file_key[0x100];
WCHAR *file_source = NULL;
WCHAR dest_name[0x100];
LPWSTR dest_path, dest;
- WCHAR component[0x100];
+ LPCWSTR file_key, component;
INT component_index;
- DWORD sz=0x100;
+ DWORD sz;
rc = MSI_ViewFetch(view,&row);
if (rc != ERROR_SUCCESS)
@@ -3329,9 +3316,8 @@ static UINT ACTION_DuplicateFiles(MSIPAC
break;
}
- sz=0x100;
- rc = MSI_RecordGetStringW(row,2,component,&sz);
- if (rc != ERROR_SUCCESS)
+ component = MSI_RecordGetString(row,2);
+ if (!component)
{
ERR("Unable to get component\n");
msiobj_release(&row->hdr);
@@ -3355,9 +3341,8 @@ static UINT ACTION_DuplicateFiles(MSIPAC
package->components[component_index].Action = INSTALLSTATE_LOCAL;
- sz=0x100;
- rc = MSI_RecordGetStringW(row,3,file_key,&sz);
- if (rc != ERROR_SUCCESS)
+ file_key = MSI_RecordGetString(row,3);
+ if (!file_key)
{
ERR("Unable to get file key\n");
msiobj_release(&row->hdr);
@@ -3395,10 +3380,8 @@ static UINT ACTION_DuplicateFiles(MSIPAC
}
else
{
- WCHAR destkey[0x100];
- sz=0x100;
- MSI_RecordGetStringW(row,5,destkey,&sz);
- sz = 0x100;
+ LPCWSTR destkey;
+ destkey = MSI_RecordGetString(row,5);
dest_path = resolve_folder(package, destkey, FALSE,FALSE,NULL);
if (!dest_path)
{
More information about the wine-patches
mailing list