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:
Corinna Vinschen 2022-08-05 12:01:45 +02:00
parent d097a96e6e
commit 1e428bee1c
1 changed files with 5 additions and 5 deletions

View File

@ -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