brasero r803 - in trunk: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r803 - in trunk: . src
- Date: Thu, 8 May 2008 19:55:12 +0100 (BST)
Author: philippr
Date: Thu May 8 18:55:12 2008
New Revision: 803
URL: http://svn.gnome.org/viewvc/brasero?rev=803&view=rev
Log:
Fix #531831 â crash when adding a directory with a file bigger than 2Gb
* src/brasero-data-project.c (brasero_data_project_node_loaded),
(brasero_data_project_node_reloaded):
* src/brasero-file-node.c (brasero_file_node_set_from_info),
(brasero_file_node_new_from_info):
* src/brasero-file-node.h:
Modified:
trunk/ChangeLog
trunk/src/brasero-data-project.c
trunk/src/brasero-file-node.c
trunk/src/brasero-file-node.h
Modified: trunk/src/brasero-data-project.c
==============================================================================
--- trunk/src/brasero-data-project.c (original)
+++ trunk/src/brasero-data-project.c Thu May 8 18:55:12 2008
@@ -1648,6 +1648,7 @@
guint64 size;
GFileType type;
gboolean size_changed;
+ BraseroFileTreeStats *stats;
BraseroDataProjectPrivate *priv;
priv = BRASERO_DATA_PROJECT_PRIVATE (self);
@@ -1725,7 +1726,8 @@
}
size_changed = (BRASERO_SIZE_TO_SECTORS (size, 2048) != BRASERO_FILE_NODE_SECTORS (node));
- brasero_file_node_set_from_info (node, info);
+ stats = brasero_file_node_get_tree_stats (priv->root, NULL);
+ brasero_file_node_set_from_info (node, stats, info);
/* Check it that needs a graft: this node has not been moved so we don't
* need to check these cases yet it could turn out that it was a symlink
@@ -1779,6 +1781,7 @@
GFileInfo *info)
{
BraseroDataProjectPrivate *priv;
+ BraseroFileTreeStats *stats;
gboolean size_changed;
const gchar *name;
guint64 size;
@@ -1807,7 +1810,8 @@
if (BRASERO_FILE_NODE_MIME (node) && !size_changed)
return;
- brasero_file_node_set_from_info (node, info);
+ stats = brasero_file_node_get_tree_stats (priv->root, NULL);
+ brasero_file_node_set_from_info (node, stats, info);
/* no need to check for graft since it wasn't renamed, it wasn't moved
* its type hasn't changed (and therefore it can't be a symlink. For
Modified: trunk/src/brasero-file-node.c
==============================================================================
--- trunk/src/brasero-file-node.c (original)
+++ trunk/src/brasero-file-node.c Thu May 8 18:55:12 2008
@@ -719,6 +719,7 @@
void
brasero_file_node_set_from_info (BraseroFileNode *node,
+ BraseroFileTreeStats *stats,
GFileInfo *info)
{
/* NOTE: the name will never be replaced here since that means
@@ -754,18 +755,10 @@
sectors = BRASERO_SIZE_TO_SECTORS (g_file_info_get_size (info), 2048);
- if (sectors > BRASERO_FILE_2G_LIMIT && BRASERO_FILE_NODE_SECTORS (node) <= BRASERO_FILE_2G_LIMIT) {
- BraseroFileTreeStats *stats;
-
- stats = brasero_file_node_get_tree_stats (node, NULL);
+ if (sectors > BRASERO_FILE_2G_LIMIT && BRASERO_FILE_NODE_SECTORS (node) <= BRASERO_FILE_2G_LIMIT)
stats->num_2Gio ++;
- }
- else if (sectors <= BRASERO_FILE_2G_LIMIT && BRASERO_FILE_NODE_SECTORS (node) > BRASERO_FILE_2G_LIMIT) {
- BraseroFileTreeStats *stats;
-
- stats = brasero_file_node_get_tree_stats (node, NULL);
+ else if (sectors <= BRASERO_FILE_2G_LIMIT && BRASERO_FILE_NODE_SECTORS (node) > BRASERO_FILE_2G_LIMIT)
stats->num_2Gio --;
- }
/* The node isn't grafted and it's a file. So we must propagate
* its size up to the parent graft node. */
@@ -833,11 +826,13 @@
GCompareFunc sort_func)
{
BraseroFileNode *node;
+ BraseroFileTreeStats *stats;
node = g_new0 (BraseroFileNode, 1);
node->union1.name = g_strdup (g_file_info_get_name (info));
- brasero_file_node_set_from_info (node, info);
+ stats = brasero_file_node_get_tree_stats (parent, NULL);
+ brasero_file_node_set_from_info (node, stats, info);
/* This must be done after above function */
brasero_file_node_add (parent, node, sort_func);
Modified: trunk/src/brasero-file-node.h
==============================================================================
--- trunk/src/brasero-file-node.h (original)
+++ trunk/src/brasero-file-node.h Thu May 8 18:55:12 2008
@@ -242,6 +242,7 @@
const gchar *name);
void
brasero_file_node_set_from_info (BraseroFileNode *node,
+ BraseroFileTreeStats *stats,
GFileInfo *info);
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]