[4/5] msi: Avoid registering duplicate source list information.

Hans Leidekker hans at codeweavers.com
Mon Mar 7 05:40:20 CST 2011


---
 dlls/msi/package.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index 5606d28..8d5fc18 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -2567,6 +2567,11 @@ UINT msi_package_add_info(MSIPACKAGE *package, DWORD context, DWORD options,
 {
     MSISOURCELISTINFO *info;
 
+    LIST_FOR_EACH_ENTRY( info, &package->sourcelist_info, MSISOURCELISTINFO, entry )
+    {
+        if (!strcmpW( info->value, value )) return ERROR_SUCCESS;
+    }
+
     info = msi_alloc(sizeof(MSISOURCELISTINFO));
     if (!info)
         return ERROR_OUTOFMEMORY;
@@ -2585,6 +2590,11 @@ UINT msi_package_add_media_disk(MSIPACKAGE *package, DWORD context, DWORD option
 {
     MSIMEDIADISK *disk;
 
+    LIST_FOR_EACH_ENTRY( disk, &package->sourcelist_media, MSIMEDIADISK, entry )
+    {
+        if (disk->disk_id == disk_id) return ERROR_SUCCESS;
+    }
+
     disk = msi_alloc(sizeof(MSIMEDIADISK));
     if (!disk)
         return ERROR_OUTOFMEMORY;
-- 
1.7.1







More information about the wine-patches mailing list