[apparmor] [patch 06/18] parser: replace reverse iterator [resend]

Steve Beattie steve at nxnw.org
Thu Jan 16 22:06:14 UTC 2014


As suggested by Seth Arnold, we can use string::find_last_not_of()
instead of using C++'s hideous reverse iterators.

Signed-off-by: Steve Beattie <steve at nxnw.org>
---
 parser/parser_variable.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Index: b/parser/parser_variable.c
===================================================================
--- a/parser/parser_variable.c
+++ b/parser/parser_variable.c
@@ -137,11 +137,11 @@ void free_var_string(struct var_string *
 
 static void trim_trailing_slash(std::string& str)
 {
-	for (std::string::reverse_iterator rit = str.rbegin();
-			rit != str.rend() && *rit == '/'; ++rit) {
-		/* yuck, reverse_iterators are ugly */
-		str.erase(--rit.base());
-	}
+	std::size_t found = str.find_last_not_of('/');
+	if (found != std::string::npos)
+		str.erase(found + 1);
+	else
+		str.clear(); // str is all '/'
 }
 
 static void write_replacement(const char separator, const char* value,




More information about the AppArmor mailing list