#include <signal.h>
#include <setjmp.h>
#include <sys/time.h>
+#include "cabinet-memory.h"
#include <captive/macros.h>
acquire_cabinet_set_uri(r,uri);
r->cabinet_done=0;
r->cabinet_used=cabinet_used;
+ r->memory=acquire_cabinet_memory_object_new();
return r;
}
acquire_cabinet_set_uri(r,uri);
gnome_vfs_uri_unref(uri);
+ r->memory=acquire_cabinet_memory_object_new();
return r;
}
g_free((/* de-const */ gchar *)acquire_cabinet->filename);
gnome_vfs_uri_unref(acquire_cabinet->uri);
gnome_vfs_uri_unref(acquire_cabinet->handle_uri);
+ g_object_unref(acquire_cabinet->memory);
g_free(acquire_cabinet);
}
if ((*ui_progress)(acquire_cabinet->uri))
return;
+ acquire_cabinet_memory_object_push(acquire_cabinet->memory);
+
basecab=find_cabs_in_file(acquire_cabinet);
if (!basecab)
- return;
+ goto fail_memory_pop;
if (basecab->next)
- return;
+ goto fail_memory_pop;
if (basecab->prevcab || basecab->nextcab)
- return;
+ goto fail_memory_pop;
filelist=process_files(basecab);
uri_fi=gnome_vfs_uri_append_file_name(acquire_cabinet->uri,fi->filename);
if ((*ui_progress)(uri_fi)) {
gnome_vfs_uri_unref(uri_fi);
- return;
+ goto fail_memory_pop;
}
file_write_fi_assertion=fi;
TRUE); /* free_segment */
gnome_vfs_uri_unref(uri_fi);
if (!errint)
- return;
+ goto fail_memory_pop;
continue;
}
file_buffer=g_byte_array_free(file_write_bytearray,
gnome_vfs_uri_unref(uri_fi);
g_free(file_buffer);
}
+
+ /* FALLTHRU */
+
+fail_memory_pop:
+ acquire_cabinet_memory_object_pop(acquire_cabinet->memory);
}