Cygwin: mount_info::get_mounts_here: alloc temp mountpoint info on cygheap
That *should* be slightly faster than allocating on the user heap. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
d097a96e6e
commit
1e428bee1c
|
@ -739,15 +739,15 @@ mount_info::get_mounts_here (const char *parent_dir, size_t parent_dir_len,
|
|||
if (last_slash == mi->posix_path)
|
||||
{
|
||||
if (parent_dir_len == 1 && mi->posix_pathlen > 1)
|
||||
sys_mbstouni_alloc (&mount_points[n_mounts++], HEAP_NOTHEAP,
|
||||
sys_mbstouni_alloc (&mount_points[n_mounts++], HEAP_BUF,
|
||||
last_slash + 1);
|
||||
}
|
||||
else if (parent_dir_len == (size_t) (last_slash - mi->posix_path)
|
||||
&& strncasematch (parent_dir, mi->posix_path, parent_dir_len))
|
||||
sys_mbstouni_alloc (&mount_points[n_mounts++], HEAP_NOTHEAP,
|
||||
sys_mbstouni_alloc (&mount_points[n_mounts++], HEAP_BUF,
|
||||
last_slash + 1);
|
||||
}
|
||||
sys_mbstouni_alloc (cygd, HEAP_NOTHEAP, cygdrive + 1);
|
||||
sys_mbstouni_alloc (cygd, HEAP_BUF, cygdrive + 1);
|
||||
if (cygd->Length)
|
||||
cygd->Length -= 2; // Strip trailing slash
|
||||
return n_mounts;
|
||||
|
@ -758,8 +758,8 @@ mount_info::free_mounts_here (PUNICODE_STRING mount_points, int n_mounts,
|
|||
PUNICODE_STRING cygd)
|
||||
{
|
||||
for (int i = 0; i < n_mounts; ++i)
|
||||
free (mount_points[i].Buffer);
|
||||
free (cygd->Buffer);
|
||||
cfree (mount_points[i].Buffer);
|
||||
cfree (cygd->Buffer);
|
||||
}
|
||||
|
||||
/* cygdrive_posix_path: Build POSIX path used as the
|
||||
|
|
Loading…
Reference in New Issue