OSDN Git Service

LogMessageData: Fix assignment in constructor
authorGreg Kaiser <gkaiser@google.com>
Tue, 6 Sep 2016 04:39:51 +0000 (21:39 -0700)
committerGreg Kaiser <gkaiser@google.com>
Tue, 6 Sep 2016 13:14:06 +0000 (06:14 -0700)
The previous code was assigning to the function argument, not
the member variable.  Since our member variable is 'const'
we use a helper function to acheive this.

Test: m test-art-host
Change-Id: I11bf7b04297b7b6c0649a87416a7a6e622e2db43

runtime/base/logging.cc

index 28352cb..529c391 100644 (file)
@@ -139,13 +139,10 @@ void InitLogging(char* argv[]) {
 class LogMessageData {
  public:
   LogMessageData(const char* file, unsigned int line, LogSeverity severity, int error)
-      : file_(file),
+      : file_(GetFilenameBase(file)),
         line_number_(line),
         severity_(severity),
-        error_(error) {
-    const char* last_slash = strrchr(file, '/');
-    file = (last_slash == nullptr) ? file : last_slash + 1;
-  }
+        error_(error) {}
 
   const char * GetFile() const {
     return file_;
@@ -178,6 +175,11 @@ class LogMessageData {
   const LogSeverity severity_;
   const int error_;
 
+  static const char* GetFilenameBase(const char* file) {
+    const char* last_slash = strrchr(file, '/');
+    return (last_slash == nullptr) ? file : last_slash + 1;
+  }
+
   DISALLOW_COPY_AND_ASSIGN(LogMessageData);
 };