diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-07-14 17:37:42 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-07-14 17:37:42 +0000 |
commit | 8deb411836f5c7faf15202b29499266f081f5708 (patch) | |
tree | 32ef5201ac1c91e55e9d025aa12e2442230041b9 /winsup/cygwin/syscalls.cc | |
parent | 472345a06cd5accbba1796ed227c620e583b11a4 (diff) | |
download | cygnal-8deb411836f5c7faf15202b29499266f081f5708.tar.gz cygnal-8deb411836f5c7faf15202b29499266f081f5708.tar.bz2 cygnal-8deb411836f5c7faf15202b29499266f081f5708.zip |
Throughout avoid having to initialize constant UNICODE_STRINGs.
* globals.cc: Define constant UNICODE_STRINGs and store in .rdata
section.
* fhandler_disk_file.cc: Throughout, use readonly UNICODE_STRINGs
rather then initializing local UNICODE_STRING variable where
applicable.
* fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
* flock.cc (inode_t::inode_t): Ditto.
* mmap.cc: Ditto.
* syscalls.cc: Ditto.
* mount.cc (fs_info::update): Ditto.
* path.cc: Ditto.
* ntdll.h (RtlEqualUnicodePathPrefix): Redefine to take prefix as
UNICODE_STRING.
(RtlEqualUnicodePathSuffix): Redefine to take suffix as UNICODE_STRING.
* fhandler_disk_file.cc: Accommodate throughout.
* mount.cc (fs_info::update): Ditto.
* path.cc (cwdstuff::set): Ditto.
* syscalls.cc: Ditto.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 9bfc02c84..1bb6007f6 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -187,7 +187,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) goto out; /* Is the file a subdir of the recycler? */ RtlInitCountedUnicodeString(&fname, pfni->FileName, pfni->FileNameLength); - if (RtlEqualUnicodePathPrefix (&fname, recycler.Buffer, TRUE)) + if (RtlEqualUnicodePathPrefix (&fname, &recycler, TRUE)) goto out; /* Is fname the recycler? Temporarily hide trailing backslash. */ recycler.Length -= sizeof (WCHAR); @@ -558,12 +558,10 @@ unlink_nt (path_conv &pc) if (status == STATUS_CANNOT_DELETE && !pc.isremote ()) { HANDLE fh2; - UNICODE_STRING fname; /* Re-open from handle so we open the correct file no matter if it has been moved to the bin or not. */ - RtlInitUnicodeString (&fname, L""); - InitializeObjectAttributes (&attr, &fname, 0, fh, NULL); + InitializeObjectAttributes (&attr, &ro_u_empty, 0, fh, NULL); status = NtOpenFile (&fh2, DELETE, &attr, &io, bin_stat == move_to_bin ? FILE_SHARE_VALID_FLAGS : FILE_SHARE_DELETE, @@ -1750,11 +1748,11 @@ rename (const char *oldpath, const char *newpath) } else if (oldpc.is_lnk_symlink () && !RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".lnk", TRUE)) + &ro_u_lnk, TRUE)) rename_append_suffix (newpc, newpath, nlen, ".lnk"); else if (oldpc.is_binary () && !old_explicit_suffix && !RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".exe", TRUE)) + &ro_u_exe, TRUE)) /* To rename an executable foo.exe to bar-without-exe-suffix, the .exe suffix must be given explicitly in oldpath. */ rename_append_suffix (newpc, newpath, nlen, ".exe"); @@ -1781,7 +1779,7 @@ rename (const char *oldpath, const char *newpath) { if (!newpc.is_lnk_symlink () && !RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".lnk", TRUE)) + &ro_u_lnk, TRUE)) { rename_append_suffix (new2pc, newpath, nlen, ".lnk"); removepc = &newpc; @@ -1790,7 +1788,7 @@ rename (const char *oldpath, const char *newpath) else if (oldpc.is_binary ()) { if (!RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".exe", TRUE)) + &ro_u_exe, TRUE)) { rename_append_suffix (new2pc, newpath, nlen, ".exe"); removepc = &newpc; @@ -1799,9 +1797,9 @@ rename (const char *oldpath, const char *newpath) else { if ((RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".lnk", TRUE) + &ro_u_lnk, TRUE) || RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), - L".exe", TRUE)) + &ro_u_exe, TRUE)) && !new_explicit_suffix) { new2pc.check (newpath, PC_SYM_NOFOLLOW, stat_suffixes); |