[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