]> Dogcows Code - chaz/tar/blobdiff - src/create.c
Optimize searches for directory structures by keeping a pointer to struct directory...
[chaz/tar] / src / create.c
index 072732a6195250bd1a9ff436971de709a590bf6f..3a0520c31a77eee127f12169e57281ec48d9afbb 100644 (file)
@@ -1116,11 +1116,12 @@ dump_dir0 (char *directory,
 
       if (!incremental_option)
        finish_header (st, blk, block_ordinal);
-      else if (gnu_list_name->dir_contents)
+      else if (gnu_list_name->directory)
        {
          if (archive_format == POSIX_FORMAT)
            {
-             xheader_store ("GNU.dumpdir", st, gnu_list_name->dir_contents);
+             xheader_store ("GNU.dumpdir", st,
+                            safe_directory_contents (gnu_list_name->directory));
              finish_header (st, blk, block_ordinal);
            }
          else
@@ -1132,11 +1133,8 @@ dump_dir0 (char *directory,
              const char *buffer, *p_buffer;
 
              block_ordinal = current_block_ordinal ();
-             buffer = gnu_list_name->dir_contents;
-             if (buffer)
-               totsize = dumpdir_size (buffer);
-             else
-               totsize = 0;
+             buffer = safe_directory_contents (gnu_list_name->directory);
+             totsize = dumpdir_size (buffer);
              OFF_TO_CHARS (totsize, blk->header.size);
              finish_header (st, blk, block_ordinal);
              p_buffer = buffer;
@@ -1304,7 +1302,7 @@ create_archive (void)
            memcpy (buffer, p, plen);
            if (! ISSLASH (buffer[plen - 1]))
              buffer[plen++] = DIRECTORY_SEPARATOR;
-           q = gnu_list_name->dir_contents;
+           q = directory_contents (gnu_list_name->directory);
            if (q)
              while (*q)
                {
This page took 0.026675 seconds and 4 git commands to generate.