From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Jenkins Date: Tue, 21 Oct 2008 10:12:57 +0000 Subject: [PATCH] util: Optimize path_encode Message-Id: <48FDAB29.9090401@tuffmail.co.uk> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org strncpy() shows up in profiling. Since we already know the length, use memcpy() instead. Measured 2% _user_ cpu time reduction on EeePC coldplug Signed-off-by: Alan Jenkins diff --git a/udev/lib/libudev-util.c b/udev/lib/libudev-util.c index 0ff121d..6586d1c 100644 --- a/udev/lib/libudev-util.c +++ b/udev/lib/libudev-util.c @@ -114,7 +114,6 @@ size_t util_path_encode(char *s, size_t len) char t[(len * 3)+1]; size_t i, j; - t[0] = '\0'; for (i = 0, j = 0; s[i] != '\0'; i++) { if (s[i] = '/') { memcpy(&t[j], "\\x2f", 4); @@ -127,8 +126,11 @@ size_t util_path_encode(char *s, size_t len) j++; } } - t[j] = '\0'; - strncpy(s, t, len); + if (len = 0) + return j; + i = (j < len - 1) ? j : len - 1; + memcpy(s, t, i); + s[i] = '\0'; return j; }