[3/4] msi: Get rid of ACTION_VerifyFeatureForAction.
Hans Leidekker
hans at codeweavers.com
Tue Feb 16 04:45:05 CST 2010
---
dlls/msi/action.c | 11 +++++------
dlls/msi/classes.c | 23 ++++++++++++-----------
dlls/msi/helpers.c | 11 -----------
dlls/msi/msipriv.h | 1 -
4 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index f9823fe..7bb4e52 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -2619,7 +2619,7 @@ static void ACTION_RefCountComponent( MSIPACKAGE* package, MSICOMPONENT *comp )
{
ComponentList *cl;
- if (!ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_LOCAL ))
+ if (feature->ActionRequest != INSTALLSTATE_LOCAL)
continue;
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
@@ -2634,7 +2634,7 @@ static void ACTION_RefCountComponent( MSIPACKAGE* package, MSICOMPONENT *comp )
{
ComponentList *cl;
- if (!ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_ABSENT ))
+ if (feature->ActionRequest != INSTALLSTATE_ABSENT)
continue;
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
@@ -3922,10 +3922,9 @@ static UINT ACTION_PublishFeatures(MSIPACKAGE *package)
BOOL absent = FALSE;
MSIRECORD *uirow;
- if (!ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_LOCAL ) &&
- !ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_SOURCE ) &&
- !ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_ADVERTISED ))
- absent = TRUE;
+ if (feature->ActionRequest != INSTALLSTATE_LOCAL &&
+ feature->ActionRequest != INSTALLSTATE_SOURCE &&
+ feature->ActionRequest != INSTALLSTATE_ADVERTISED) absent = TRUE;
size = 1;
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c
index 6ca35b9..acd8429 100644
--- a/dlls/msi/classes.c
+++ b/dlls/msi/classes.c
@@ -809,16 +809,17 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
continue;
feature = cls->Feature;
+ if (!feature)
+ continue;
/*
* MSDN says that these are based on Feature not on Component.
*/
- if (!ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_LOCAL ) &&
- !ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_ADVERTISED ))
+ if (feature->ActionRequest != INSTALLSTATE_LOCAL &&
+ feature->ActionRequest != INSTALLSTATE_ADVERTISED )
{
- TRACE("Skipping class %s reg due to disabled feature %s\n",
- debugstr_w(cls->clsid), debugstr_w(feature->Feature));
-
+ TRACE("Feature %s not scheduled for installation, skipping regstration of class %s\n",
+ debugstr_w(feature->Feature), debugstr_w(cls->clsid));
continue;
}
@@ -1142,18 +1143,18 @@ UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package)
continue;
feature = ext->Feature;
+ if (!feature)
+ continue;
/*
* yes. MSDN says that these are based on _Feature_ not on
* Component. So verify the feature is to be installed
*/
- if ((!ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_LOCAL )) &&
- !(install_on_demand &&
- ACTION_VerifyFeatureForAction( feature, INSTALLSTATE_ADVERTISED )))
+ if (feature->ActionRequest != INSTALLSTATE_LOCAL &&
+ !(install_on_demand && feature->ActionRequest == INSTALLSTATE_ADVERTISED))
{
- TRACE("Skipping extension %s reg due to disabled feature %s\n",
- debugstr_w(ext->Extension), debugstr_w(feature->Feature));
-
+ TRACE("Feature %s not scheduled for installation, skipping registration of extension %s\n",
+ debugstr_w(feature->Feature), debugstr_w(ext->Extension));
continue;
}
diff --git a/dlls/msi/helpers.c b/dlls/msi/helpers.c
index df25c3e..e763a11 100644
--- a/dlls/msi/helpers.c
+++ b/dlls/msi/helpers.c
@@ -604,17 +604,6 @@ void ui_actiondata(MSIPACKAGE *package, LPCWSTR action, MSIRECORD * record)
msiobj_release(&row->hdr);
}
-BOOL ACTION_VerifyFeatureForAction( const MSIFEATURE* feature, INSTALLSTATE check )
-{
- if (!feature)
- return FALSE;
-
- if (feature->ActionRequest == check)
- return TRUE;
- else
- return FALSE;
-}
-
void reduce_to_longfilename(WCHAR* filename)
{
LPWSTR p = strchrW(filename,'|');
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index 8c77a9f..5ea707f 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -982,7 +982,6 @@ extern void msi_free_action_script(MSIPACKAGE *package, UINT script);
extern LPWSTR build_icon_path(MSIPACKAGE *, LPCWSTR);
extern LPWSTR build_directory_name(DWORD , ...);
extern BOOL create_full_pathW(const WCHAR *path);
-extern BOOL ACTION_VerifyFeatureForAction(const MSIFEATURE*, INSTALLSTATE);
extern void reduce_to_longfilename(WCHAR*);
extern LPWSTR create_component_advertise_string(MSIPACKAGE*, MSICOMPONENT*, LPCWSTR);
extern void ACTION_UpdateComponentStates(MSIPACKAGE *package, LPCWSTR szFeature);
--
1.6.3.3
More information about the wine-patches
mailing list