* vfs.c (mc_ungetlocalcopy): Free local path here, not in class

implementations.
* vfs.h (struct vfs_s_class): Constify "local" argument for
ungetlocalcopy.  Adjust all implementations.
This commit is contained in:
Pavel Roskin 2003-10-28 21:52:06 +00:00
parent bb184c9c8b
commit 77bcdc8127
7 changed files with 17 additions and 15 deletions

View File

@ -1,5 +1,10 @@
2003-10-28 Pavel Roskin <proski@gnu.org>
* vfs.c (mc_ungetlocalcopy): Free local path here, not in class
implementations.
* vfs.h (struct vfs_s_class): Constify "local" argument for
ungetlocalcopy. Adjust all implementations.
* direntry.c (vfs_s_init_class): Use our getlocalcopy for remote
filesystems that cache files, not for archives.
(vfs_s_getlocalcopy): Corresponding changes.

View File

@ -997,10 +997,9 @@ vfs_s_getlocalcopy (struct vfs_class *me, const char *path)
* the cache will be removed when the archive is closed.
*/
static int
vfs_s_ungetlocalcopy (struct vfs_class *me, const char *path, char *local,
int has_changed)
vfs_s_ungetlocalcopy (struct vfs_class *me, const char *path,
const char *local, int has_changed)
{
g_free (local);
return 0;
}

View File

@ -191,7 +191,7 @@ static void extfs_free_archive (struct archive *archive)
mc_stat (archive->local_name, &my);
mc_ungetlocalcopy (archive->name, archive->local_name,
archive->local_stat.st_mtime != my.st_mtime);
/* ungetlocalcopy frees local_name for us */
/* mc_ungetlocalcopy() frees local_name for us */
}
if (archive->name)
g_free (archive->name);
@ -1254,8 +1254,8 @@ extfs_getlocalcopy (struct vfs_class *me, const char *path)
}
static int
extfs_ungetlocalcopy (struct vfs_class *me, const char *path, char *local,
int has_changed)
extfs_ungetlocalcopy (struct vfs_class *me, const char *path,
const char *local, int has_changed)
{
struct pseudofile *fp =
(struct pseudofile *) extfs_open (me, path, O_RDONLY, 0);

View File

@ -255,8 +255,8 @@ local_getlocalcopy (struct vfs_class *me, const char *path)
}
static int
local_ungetlocalcopy (struct vfs_class *me, const char *path, char *local,
int has_changed)
local_ungetlocalcopy (struct vfs_class *me, const char *path,
const char *local, int has_changed)
{
return 0;
}

View File

@ -301,10 +301,9 @@ sfs_getlocalcopy (struct vfs_class *me, const char *path)
}
static int
sfs_ungetlocalcopy (struct vfs_class *me, const char *path, char *local,
int has_changed)
sfs_ungetlocalcopy (struct vfs_class *me, const char *path,
const char *local, int has_changed)
{
g_free (local);
return 0;
}

View File

@ -1081,7 +1081,7 @@ mc_getlocalcopy (const char *pathname)
static int
mc_def_ungetlocalcopy (struct vfs_class *vfs, const char *filename,
char *local, int has_changed)
const char *local, int has_changed)
{
int fdin = -1, fdout = -1, i;
if (has_changed) {
@ -1114,7 +1114,6 @@ mc_def_ungetlocalcopy (struct vfs_class *vfs, const char *filename,
}
}
unlink (local);
g_free (local);
return 0;
failed:
@ -1124,7 +1123,6 @@ mc_def_ungetlocalcopy (struct vfs_class *vfs, const char *filename,
if (fdin != -1)
close (fdin);
unlink (local);
g_free (local);
return -1;
}
@ -1139,6 +1137,7 @@ mc_ungetlocalcopy (const char *pathname, char *local, int has_changed)
(*vfs->ungetlocalcopy)(vfs, path, local, has_changed) :
mc_def_ungetlocalcopy (vfs, path, local, has_changed);
g_free (path);
g_free (local);
return return_value;
}

View File

@ -72,7 +72,7 @@ struct vfs_class {
char *(*getlocalcopy) (struct vfs_class *me, const char *filename);
int (*ungetlocalcopy) (struct vfs_class *me, const char *filename,
char *local, int has_changed);
const char *local, int has_changed);
int (*mkdir) (struct vfs_class *me, char *path, mode_t mode);
int (*rmdir) (struct vfs_class *me, char *path);