[gcab] Fix writing files after refactoring



commit 58a9a0747ac264e07d54a46b91b7acb9f935f2a4
Author: Marc-Andrà Lureau <marcandre lureau gmail com>
Date:   Fri Dec 14 15:28:10 2012 +0100

    Fix writing files after refactoring

 libgcab/gcab-cabinet.c |   12 +++++++++---
 libgcab/gcab-file.c    |    5 -----
 2 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/libgcab/gcab-cabinet.c b/libgcab/gcab-cabinet.c
index d9d9404..3eb76f5 100644
--- a/libgcab/gcab-cabinet.c
+++ b/libgcab/gcab-cabinet.c
@@ -218,9 +218,15 @@ gcab_cabinet_write (GCabCabinet *self,
     if (cfolder_write (&folder, out, error) == -1)
         return FALSE;
 
-    /* for (i = 0; i < cfiles->len; ++i) */
-    /*     if (cfile_write (&g_array_index (cfiles, cfile_t, i), out, error) == -1) */
-    /*         return FALSE; */
+    cfile_t *prevf = NULL;
+    g_hash_table_iter_init (&iter, cabfolder->files);
+    while (g_hash_table_iter_next (&iter, NULL, (gpointer*)&file)) {
+        file->cfile.uoffset = prevf ? prevf->uoffset + prevf->usize : 0;
+        prevf = &file->cfile;
+
+        if (cfile_write (&file->cfile, out, error) == -1)
+            return FALSE;
+    }
 
     return TRUE;
 
diff --git a/libgcab/gcab-file.c b/libgcab/gcab-file.c
index d2e2038..0c80f13 100644
--- a/libgcab/gcab-file.c
+++ b/libgcab/gcab-file.c
@@ -129,11 +129,6 @@ gcab_file_update_info (GCabFile *self, GFileInfo *info)
         ((m->tm_mon+1) << 5 ) + (m->tm_mday);
     self->cfile.time = (m->tm_hour << 11) + (m->tm_min << 5) + (m->tm_sec / 2);
 
-    /* if (cfiles->len != 0) { */
-    /*     cfile_t *prevf = &g_array_index (cfiles, cfile_t, cfiles->len - 1); */
-    /*     self->cfile.uoffset = prevf->uoffset + prevf->usize; */
-    /* } */
-
     return TRUE;
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]