diff -rupN filefield_field.inc filefield_field.inc --- filefield_field.inc 2009-03-03 13:56:31.000000000 +0100 +++ filefield_field.inc 2009-03-03 14:05:00.000000000 +0100 @@ -87,14 +87,13 @@ function filefield_field_load($node, $fi // Despite hook_content_is_empty(), CCK still doesn't filter out // empty items from $op = 'load', so we need to do that ourselves. if (empty($item['fid']) || !($file = field_file_load($item['fid']))) { - unset($items[$delta]); + $items[$delta] = NULL; } else { $item['data'] = unserialize($item['data']); $items[$delta] = array_merge($item, $file); } } - $items = array_values($items); // compact deltas return array($field['field_name'] => $items); } @@ -109,12 +108,12 @@ function filefield_field_update($node, $ $curfids = array(); foreach ($items as $delta => $item) { $items[$delta] = field_file_save($node, $item); - // Remove items from the array if they have been deleted. - if (empty($items[$delta])) unset($items[$delta]); + // Cleanup items if they have been deleted. + if (empty($items[$delta])) { + $items[$delta] = NULL; + } $curfids[] = $item['fid']; } - $items = array_values($items); // compact deltas - // if this is a new node... there are no // old items to worry about. @@ -138,8 +137,9 @@ function filefield_field_delete_revision foreach ($items as $delta => $item) { // For hook_file_references, remember that this is being deleted. $item['field_name'] = $field['field_name']; - if (field_file_delete($item)) unset($items[$delta]); - $items = array_values($items); // compact deltas + if (field_file_delete($item)) { + $items[$delta] = NULL; + } } } @@ -156,7 +156,7 @@ function filefield_field_sanitize($node, foreach ($items as $delta => $item) { // Cleanup $items during node preview. if (empty($item['fid']) || !empty($item['delete'])) { - unset($items[$delta]); + $items[$delta] = NULL; continue; } // Load the complete file if a filepath is not available.