[PATCH 02/11] syscalls.cc: Deduplicate _remove_r
Mon Jan 18 13:04:20 GMT 2021
On Jan 18 13:40, Ben wrote:
> On 18-01-2021 11:56, Corinna Vinschen via Cygwin-patches wrote:
> > Hmm, you're adding another function call to the call stack. Doesn't
> > that slow down _remove_r rather than speeding it up? Ok, this function
> > is called from _tmpfile_r/_tmpfile64_r only, so dedup may trump speed
> > here...
> > What's your stance?
> While I could do without:
> In an earlier version I had changed remove and missed remove_r.
> So, this commit is more about de-duplication rather than speed.
What about this instead? It should be better optimizable:
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 4742c665339c..2d8acb4c1052 100644
@@ -1133,24 +1133,15 @@ _remove_r (struct _reent *, const char *ourname)
- return win32_name.isdir () ? rmdir (ourname) : unlink (ourname);
+ int res = win32_name.isdir () ? rmdir (ourname) : unlink (ourname);
+ syscall_printf ("%R = remove(%s)", res, ourname);
+ return res;
extern "C" int
remove (const char *ourname)
- path_conv win32_name (ourname, PC_SYM_NOFOLLOW);
- if (win32_name.error)
- set_errno (win32_name.error);
- syscall_printf ("-1 = remove (%s)", ourname);
- return -1;
- int res = win32_name.isdir () ? rmdir (ourname) : unlink (ourname);
- syscall_printf ("%R = remove(%s)", res, ourname);
- return res;
+ return _remove_r (_GLOBAL_REENT, ourname);
extern "C" pid_t
More information about the Cygwin-patches