[cfe-commits] r94887 - /cfe/trunk/lib/Basic/Version.cpp

Benjamin Kramer benny.kra at googlemail.com
Sat Jan 30 06:01:39 PST 2010


Author: d0k
Date: Sat Jan 30 08:01:39 2010
New Revision: 94887

URL: http://llvm.org/viewvc/llvm-project?rev=94887&view=rev
Log:
We don't need to place 0 in the URL string now that we return a StringRef.

- URL can go into read only memory now.
- Compilers will fold away all the strstr calls.

Modified:
    cfe/trunk/lib/Basic/Version.cpp

Modified: cfe/trunk/lib/Basic/Version.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Version.cpp?rev=94887&r1=94886&r2=94887&view=diff

==============================================================================
--- cfe/trunk/lib/Basic/Version.cpp (original)
+++ cfe/trunk/lib/Basic/Version.cpp Sat Jan 30 08:01:39 2010
@@ -21,27 +21,22 @@
 namespace clang {
   
 llvm::StringRef getClangRepositoryPath() {
-  static const char *Path = 0;
-  if (Path)
-    return Path;
-  
-  static char URL[] = "$URL$";
-  char *End = strstr(URL, "/lib/Basic");
+  static const char URL[] = "$URL$";
+  const char *URLEnd = URL + strlen(URL);
+
+  const char *End = strstr(URL, "/lib/Basic");
   if (End)
-    *End = 0;
-  
+    URLEnd = End;
+
   End = strstr(URL, "/clang/tools/clang");
   if (End)
-    *End = 0;
-  
-  char *Begin = strstr(URL, "cfe/");
-  if (Begin) {
-    Path = Begin + 4;
-    return Path;
-  }
-  
-  Path = URL;
-  return Path;
+    URLEnd = End;
+
+  const char *Begin = strstr(URL, "cfe/");
+  if (Begin)
+    return llvm::StringRef(Begin + 4, URLEnd - Begin - 4);
+
+  return llvm::StringRef(URL, URLEnd - URL);
 }
 
 





More information about the cfe-commits mailing list