Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Mar 2015 11:59:59 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r279806 - head/usr.sbin/autofs
Message-ID:  <201503091159.t29Bxxfu072359@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Mon Mar  9 11:59:58 2015
New Revision: 279806
URL: https://svnweb.freebsd.org/changeset/base/279806

Log:
  Minor optimization/cleanup in node_path(); no functional changes.
  
  MFC after:	1 month
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/usr.sbin/autofs/common.c

Modified: head/usr.sbin/autofs/common.c
==============================================================================
--- head/usr.sbin/autofs/common.c	Mon Mar  9 10:29:15 2015	(r279805)
+++ head/usr.sbin/autofs/common.c	Mon Mar  9 11:59:58 2015	(r279806)
@@ -561,7 +561,6 @@ static char *
 node_path_x(const struct node *n, char *x)
 {
 	char *path;
-	size_t len;
 
 	if (n->n_parent == NULL)
 		return (x);
@@ -580,14 +579,6 @@ node_path_x(const struct node *n, char *
 	path = separated_concat(n->n_key, x, '/');
 	free(x);
 
-	/*
-	 * Strip trailing slash.
-	 */
-	len = strlen(path);
-	assert(len > 0);
-	if (path[len - 1] == '/')
-		path[len - 1] = '\0';
-
 	return (node_path_x(n->n_parent, path));
 }
 
@@ -598,8 +589,19 @@ node_path_x(const struct node *n, char *
 char *
 node_path(const struct node *n)
 {
+	char *path;
+	size_t len;
+
+	path = node_path_x(n, checked_strdup(""));
+
+	/*
+	 * Strip trailing slash, unless the whole path is "/".
+	 */
+	len = strlen(path);
+	if (len > 1 && path[len - 1] == '/')
+		path[len - 1] = '\0';
 
-	return (node_path_x(n, checked_strdup("")));
+	return (path);
 }
 
 static char *



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503091159.t29Bxxfu072359>