Use buildtime to ensure stability stats

r=huanr
Review URL: http://codereview.chromium.org/548058

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36549 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc
index 47869236..4ce5273 100644
--- a/chrome/browser/metrics/metrics_log.cc
+++ b/chrome/browser/metrics/metrics_log.cc
@@ -38,8 +38,6 @@
   return reinterpret_cast<const unsigned char*>(input);
 }
 
-static int64 GetBuildTime();
-
 // static
 void MetricsLog::RegisterPrefs(PrefService* local_state) {
   local_state->RegisterListPref(prefs::kStabilityPluginStats);
@@ -316,6 +314,19 @@
   return std::string();
 }
 
+// static
+int64 MetricsLog::GetBuildTime() {
+  static int64 integral_build_time = 0;
+  if (!integral_build_time) {
+    Time time;
+    const char* kDateTime = __DATE__ " " __TIME__ " GMT";
+    bool result = Time::FromString(ASCIIToWide(kDateTime).c_str(), &time);
+    DCHECK(result);
+    integral_build_time = static_cast<int64>(time.ToTimeT());
+  }
+  return integral_build_time;
+}
+
 std::string MetricsLog::GetInstallDate() const {
   PrefService* pref = g_browser_process->local_state();
   if (pref) {
@@ -713,11 +724,3 @@
     }
   }
 }
-
-static int64 GetBuildTime() {
-  Time parsed_time;
-  const char* kDateTime = __DATE__ " " __TIME__ " GMT";
-  bool result = Time::FromString(ASCIIToWide(kDateTime).c_str(), &parsed_time);
-  DCHECK(result);
-  return static_cast<int64>(parsed_time.ToTimeT());
-}