[06/10] msi: Make room for the new row in STREAMS_insert_row.

Hans Leidekker hans at codeweavers.com
Thu Feb 4 03:02:26 CST 2010


---
 dlls/msi/streams.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/dlls/msi/streams.c b/dlls/msi/streams.c
index bdb2e2c..120b2b7 100644
--- a/dlls/msi/streams.c
+++ b/dlls/msi/streams.c
@@ -218,6 +218,7 @@ done:
 static UINT STREAMS_insert_row(struct tagMSIVIEW *view, MSIRECORD *rec, UINT row, BOOL temporary)
 {
     MSISTREAMSVIEW *sv = (MSISTREAMSVIEW *)view;
+    UINT i;
 
     TRACE("(%p, %p, %d, %d)\n", view, rec, row, temporary);
 
@@ -227,7 +228,11 @@ static UINT STREAMS_insert_row(struct tagMSIVIEW *view, MSIRECORD *rec, UINT row
     if (row == -1)
         row = sv->num_rows - 1;
 
-    /* FIXME have to readjust rows */
+    /* shift the rows to make room for the new row */
+    for (i = sv->num_rows - 1; i > row; i--)
+    {
+        sv->streams[i] = sv->streams[i - 1];
+    }
 
     return STREAMS_set_row(view, row, rec, 0);
 }
-- 
1.6.3.3





More information about the wine-patches mailing list