else {
struct acquire_cabinet *acquire_cabinet;
/* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
- acquire_cabinet=acquire_cabinet_new_from_memory(file_base,file_length,uri);
+ acquire_cabinet=acquire_cabinet_new_from_memory(file_base,file_length,uri,module->cabinet_used);
acquire_cabinet_load(acquire_cabinet);
acquire_cabinet_free(acquire_cabinet);
}
g_free(file_buffer);
}
-static void mod_uri_load_file_handle_remote_cabinet(GnomeVFSHandle *handle,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri)
+static void mod_uri_load_file_handle_remote_cabinet
+ (GnomeVFSHandle *handle,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri,gint cabinet_used)
{
struct acquire_cabinet *acquire_cabinet;
g_return_if_fail(file_info!=NULL);
g_return_if_fail(uri!=NULL);
- acquire_cabinet=acquire_cabinet_new_from_handle(handle,file_info,uri);
+ acquire_cabinet=acquire_cabinet_new_from_handle(handle,file_info,uri,cabinet_used);
/* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
acquire_cabinet_load(acquire_cabinet);
acquire_cabinet_free(acquire_cabinet);
}
if (file_info_local.size<=MAX_FILE_LOAD_LENGTH)
mod_uri_load_file_handle_to_memory(handle,&file_info_local,uri);
- else
- mod_uri_load_file_handle_remote_cabinet(handle,&file_info_local,uri);
+ else {
+gint cabinet_used=captivemodid_cabinet_length_to_used(file_info_local.size);
+
+ mod_uri_load_file_handle_remote_cabinet(handle,&file_info_local,uri,cabinet_used);
+ }
errvfsresult=GNOME_VFS_OK;
/* PASSTHRU */
fail_close_handle: