Bug 785738 Part 3: use PRTime instead of int64_t where appropriate; r=ehsan
authorLandry Breuil <landry@openbsd.org>
Thu, 30 Aug 2012 09:10:35 +0200
changeset 103895 78648d1350939b9b30849a120c39608bd53fd007
parent 103894 b523c75e74b895cfcc34c1094289db41833b2b4d
child 103896 5108cd2d73068e4547ae70190323bc6edfb51abe
push id1053
push uservporof@mozilla.com
push dateMon, 03 Sep 2012 10:27:19 +0000
treeherderfx-team@2e5e12afabde [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersehsan
bugs785738
milestone18.0a1
Bug 785738 Part 3: use PRTime instead of int64_t where appropriate; r=ehsan
content/base/src/nsDOMFile.cpp
dom/devicestorage/nsDeviceStorage.cpp
dom/plugins/base/nsPluginHost.cpp
image/src/imgLoader.cpp
modules/libjar/zipwriter/src/nsZipWriter.cpp
netwerk/base/src/nsDirectoryIndexStream.cpp
profile/dirserviceprovider/src/nsProfileLock.cpp
profile/dirserviceprovider/src/nsProfileLock.h
rdf/datasource/src/nsFileSystemDataSource.cpp
toolkit/components/filepicker/nsFileView.cpp
toolkit/components/places/Database.cpp
toolkit/components/startup/nsAppStartup.cpp
toolkit/profile/nsIToolkitProfile.idl
toolkit/profile/nsToolkitProfileService.cpp
toolkit/xre/nsAppRunner.cpp
xpcom/io/nsIFile.idl
xpcom/io/nsLocalFileOS2.cpp
xpcom/io/nsLocalFileUnix.cpp
xpcom/io/nsLocalFileWin.cpp
xpcom/system/nsIXULRuntime.idl
--- a/content/base/src/nsDOMFile.cpp
+++ b/content/base/src/nsDOMFile.cpp
@@ -489,17 +489,17 @@ nsDOMFileFile::GetMozFullPathInternal(ns
 {
   NS_ASSERTION(mIsFile, "Should only be called on files");
   return mFile->GetPath(aFilename);
 }
 
 NS_IMETHODIMP
 nsDOMFileFile::GetLastModifiedDate(JSContext* cx, JS::Value *aLastModifiedDate)
 {
-  int64_t msecs;
+  PRTime msecs;
   mFile->GetLastModifiedTime(&msecs);
   JSObject* date = JS_NewDateObjectMsec(cx, msecs);
   if (date) {
     aLastModifiedDate->setObject(*date);
   }
   else {
     aLastModifiedDate->setNull();
   }
--- a/dom/devicestorage/nsDeviceStorage.cpp
+++ b/dom/devicestorage/nsDeviceStorage.cpp
@@ -311,17 +311,17 @@ DeviceStorageFile::collectFilesInternal(
     return;
   }
 
   nsCOMPtr<nsIDirectoryEnumerator> files = do_QueryInterface(e);
   nsCOMPtr<nsIFile> f;
 
   while (NS_SUCCEEDED(files->GetNextFile(getter_AddRefs(f))) && f) {
 
-    int64_t msecs;
+    PRTime msecs;
     f->GetLastModifiedTime(&msecs);
 
     if (msecs < aSince) {
       continue;
      }
 
     bool isDir;
     f->IsDirectory(&isDir);
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -1999,17 +1999,17 @@ nsPluginHost::FirstPluginWithPath(const 
   }
   return nullptr;
 }
 
 namespace {
 
 int64_t GetPluginLastModifiedTime(const nsCOMPtr<nsIFile>& localfile)
 {
-  int64_t fileModTime = LL_ZERO;
+  PRTime fileModTime = LL_ZERO;
 
 #if defined(XP_MACOSX)
   // On OS X the date of a bundle's "contents" (i.e. of its Info.plist file)
   // is a much better guide to when it was last modified than the date of
   // its package directory.  See bug 313700.
   nsCOMPtr<nsILocalFileMac> localFileMac = do_QueryInterface(localfile);
   if (localFileMac) {
     localFileMac->GetBundleContentsLastModifiedTime(&fileModTime);
--- a/image/src/imgLoader.cpp
+++ b/image/src/imgLoader.cpp
@@ -1279,17 +1279,17 @@ bool imgLoader::ValidateEntry(imgCacheEn
   // Special treatment for file URLs - aEntry has expired if file has changed
   nsCOMPtr<nsIFileURL> fileUrl(do_QueryInterface(aURI));
   if (fileUrl) {
     uint32_t lastModTime = aEntry->GetTouchedTime();
 
     nsCOMPtr<nsIFile> theFile;
     rv = fileUrl->GetFile(getter_AddRefs(theFile));
     if (NS_SUCCEEDED(rv)) {
-      int64_t fileLastMod;
+      PRTime fileLastMod;
       rv = theFile->GetLastModifiedTime(&fileLastMod);
       if (NS_SUCCEEDED(rv)) {
         // nsIFile uses millisec, NSPR usec
         fileLastMod *= 1000;
         hasExpired = SecondsFromPRTime((PRTime)fileLastMod) > lastModTime;
       }
     }
   }
--- a/modules/libjar/zipwriter/src/nsZipWriter.cpp
+++ b/modules/libjar/zipwriter/src/nsZipWriter.cpp
@@ -359,17 +359,17 @@ NS_IMETHODIMP nsZipWriter::AddEntryFile(
     NS_ENSURE_SUCCESS(rv, rv);
     if (!exists)
         return NS_ERROR_FILE_NOT_FOUND;
 
     bool isdir;
     rv = aFile->IsDirectory(&isdir);
     NS_ENSURE_SUCCESS(rv, rv);
 
-    int64_t modtime;
+    PRTime modtime;
     rv = aFile->GetLastModifiedTime(&modtime);
     NS_ENSURE_SUCCESS(rv, rv);
     modtime *= PR_USEC_PER_MSEC;
 
     uint32_t permissions;
     rv = aFile->GetPermissions(&permissions);
     NS_ENSURE_SUCCESS(rv, rv);
 
--- a/netwerk/base/src/nsDirectoryIndexStream.cpp
+++ b/netwerk/base/src/nsDirectoryIndexStream.cpp
@@ -273,17 +273,17 @@ nsDirectoryIndexStream::Read(char* aBuf,
                         this));
                 continue;
             }
 #endif
 
             int64_t fileSize = 0;
             current->GetFileSize( &fileSize );
 
-            int64_t fileInfoModifyTime = 0;
+            PRTime fileInfoModifyTime = 0;
             current->GetLastModifiedTime( &fileInfoModifyTime );
             fileInfoModifyTime *= PR_USEC_PER_MSEC;
 
             mBuf.AppendLiteral("201: ");
 
             // The "filename" field
             char* escaped = nullptr;
             if (!NS_IsNativeUTF8()) {
--- a/profile/dirserviceprovider/src/nsProfileLock.cpp
+++ b/profile/dirserviceprovider/src/nsProfileLock.cpp
@@ -421,17 +421,17 @@ PR_BEGIN_MACRO                          
         printf("symlink() failed. errno = %d\n", errno);
 #endif
         rv = NS_ERROR_FAILURE;
     }
     return rv;
 }
 #endif /* XP_UNIX */
 
-nsresult nsProfileLock::GetReplacedLockTime(int64_t *aResult) {
+nsresult nsProfileLock::GetReplacedLockTime(PRTime *aResult) {
     *aResult = mReplacedLockTime;
     return NS_OK;
 }
 
 nsresult nsProfileLock::Lock(nsIFile* aProfileDir,
                              nsIProfileUnlocker* *aUnlocker)
 {
 #if defined (XP_MACOSX)
--- a/profile/dirserviceprovider/src/nsProfileLock.h
+++ b/profile/dirserviceprovider/src/nsProfileLock.h
@@ -54,21 +54,21 @@ public:
      * the application is in the process of shutting down because of a fatal
      * signal, set aFatalSignal to true.
      */
     nsresult                Unlock(bool aFatalSignal = false);
 
     /**
      * Get the modification time of a replaced profile lock, otherwise 0.
      */
-    nsresult                GetReplacedLockTime(int64_t* aResult);
+    nsresult                GetReplacedLockTime(PRTime* aResult);
 
 private:
     bool                    mHaveLock;
-    int64_t                 mReplacedLockTime;
+    PRTime                  mReplacedLockTime;
 
 #if defined (XP_WIN)
     HANDLE                  mLockFileHandle;
 #elif defined (XP_OS2)
     LHANDLE                 mLockFileHandle;
 #elif defined (XP_UNIX)
 
     struct RemovePidLockFilesExiting {
--- a/rdf/datasource/src/nsFileSystemDataSource.cpp
+++ b/rdf/datasource/src/nsFileSystemDataSource.cpp
@@ -1128,17 +1128,17 @@ FileSystemDataSource::GetLastMod(nsIRDFR
     if (NS_FAILED(rv = fileURL->GetFile(getter_AddRefs(aFile))))
         return(rv);
     if (!aFile)
         return(NS_ERROR_UNEXPECTED);
 
     // ensure that we DO NOT resolve aliases
     aFile->SetFollowLinks(false);
 
-    int64_t lastModDate;
+    PRTime lastModDate;
     if (NS_FAILED(rv = aFile->GetLastModifiedTime(&lastModDate)))
         return(rv);
 
     // convert from milliseconds to seconds
     PRTime      temp64, thousand;
     LL_I2L(thousand, PR_MSEC_PER_SEC);
     LL_MUL(temp64, lastModDate, thousand);
 
--- a/toolkit/components/filepicker/nsFileView.cpp
+++ b/toolkit/components/filepicker/nsFileView.cpp
@@ -745,17 +745,17 @@ nsFileView::GetCellText(int32_t aRow, ns
     return NS_OK;
   }
 
   const PRUnichar* colID;
   aCol->GetIdConst(&colID);
   if (NS_LITERAL_STRING("FilenameColumn").Equals(colID)) {
     curFile->GetLeafName(aCellText);
   } else if (NS_LITERAL_STRING("LastModifiedColumn").Equals(colID)) {
-    int64_t lastModTime;
+    PRTime lastModTime;
     curFile->GetLastModifiedTime(&lastModTime);
     // XXX FormatPRTime could take an nsAString&
     nsAutoString temp;
     mDateFormatter->FormatPRTime(nullptr, kDateFormatShort, kTimeFormatSeconds,
                                  lastModTime * 1000, temp);
     aCellText = temp;
   } else {
     // file size
@@ -941,17 +941,17 @@ SortSizeCallback(const void* aElement1, 
 }
 
 static int
 SortDateCallback(const void* aElement1, const void* aElement2, void* aContext)
 {
   nsIFile* file1 = *static_cast<nsIFile* const *>(aElement1);
   nsIFile* file2 = *static_cast<nsIFile* const *>(aElement2);
 
-  int64_t time1, time2;
+  PRTime time1, time2;
   file1->GetLastModifiedTime(&time1);
   file2->GetLastModifiedTime(&time2);
 
   if (LL_EQ(time1, time2))
     return 0;
 
   return (LL_CMP(time1, <, time2) ? -1 : 1);
 }
--- a/toolkit/components/places/Database.cpp
+++ b/toolkit/components/places/Database.cpp
@@ -85,17 +85,17 @@ hasRecentCorruptDB()
     NS_ENSURE_TRUE(next, false);
     nsCOMPtr<nsIFile> currFile = do_QueryInterface(next);
     NS_ENSURE_TRUE(currFile, false);
 
     nsAutoString leafName;
     if (NS_SUCCEEDED(currFile->GetLeafName(leafName)) &&
         leafName.Length() >= DATABASE_CORRUPT_FILENAME.Length() &&
         leafName.Find(".corrupt", DATABASE_FILENAME.Length()) != -1) {
-      int64_t lastMod = 0;
+      PRTime lastMod = 0;
       currFile->GetLastModifiedTime(&lastMod);
       NS_ENSURE_TRUE(lastMod > 0, false);
       return (PR_Now() - lastMod) > RECENT_BACKUP_TIME_MICROSEC;
     }
   }
   return false;
 }
 
--- a/toolkit/components/startup/nsAppStartup.cpp
+++ b/toolkit/components/startup/nsAppStartup.cpp
@@ -952,17 +952,17 @@ nsAppStartup::TrackStartupCrashBegin(boo
   }
 
   bool inSafeMode = false;
   nsCOMPtr<nsIXULRuntime> xr = do_GetService(XULRUNTIME_SERVICE_CONTRACTID);
   NS_ENSURE_TRUE(xr, NS_ERROR_FAILURE);
 
   xr->GetInSafeMode(&inSafeMode);
 
-  int64_t replacedLockTime;
+  PRTime replacedLockTime;
   rv = xr->GetReplacedLockTime(&replacedLockTime);
 
   if (NS_FAILED(rv) || !replacedLockTime) {
     if (!inSafeMode)
       Preferences::ClearUser(kPrefRecentCrashes);
     GetAutomaticSafeModeNecessary(aIsSafeModeNecessary);
     return NS_OK;
   }
--- a/toolkit/profile/nsIToolkitProfile.idl
+++ b/toolkit/profile/nsIToolkitProfile.idl
@@ -29,17 +29,17 @@ interface nsIProfileLock : nsISupports
      *
      * In some cases, this directory may just be the main profile directory.
      */
     readonly attribute nsIFile localDirectory;
 
     /**
      * The timestamp of an existing profile lock at lock time.
      */
-    readonly attribute int64_t replacedLockTime;
+    readonly attribute PRTime replacedLockTime;
 
     /**
      * Unlock the profile.
      */
     void unlock();
 };
 
 /**
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -347,17 +347,17 @@ nsToolkitProfileLock::Unlock()
     }
     mDirectory = nullptr;
     mLocalDirectory = nullptr;
 
     return NS_OK;
 }
 
 NS_IMETHODIMP
-nsToolkitProfileLock::GetReplacedLockTime(int64_t *aResult)
+nsToolkitProfileLock::GetReplacedLockTime(PRTime *aResult)
 {
     mLock.GetReplacedLockTime(aResult);
     return NS_OK;
 }
 
 nsToolkitProfileLock::~nsToolkitProfileLock()
 {
     if (mDirectory) {
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -805,17 +805,17 @@ nsXULAppInfo::InvalidateCachesOnRestart(
     static const char kInvalidationHeader[] = NS_LINEBREAK "InvalidateCaches=1" NS_LINEBREAK;
     PR_Write(fd, kInvalidationHeader, sizeof(kInvalidationHeader) - 1);
     PR_Close(fd);
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsXULAppInfo::GetReplacedLockTime(int64_t *aReplacedLockTime)
+nsXULAppInfo::GetReplacedLockTime(PRTime *aReplacedLockTime)
 {
   if (!gProfileLock)
     return NS_ERROR_NOT_AVAILABLE;
   gProfileLock->GetReplacedLockTime(aReplacedLockTime);
   return NS_OK;
 }
 
 NS_IMETHODIMP
--- a/xpcom/io/nsIFile.idl
+++ b/xpcom/io/nsIFile.idl
@@ -183,18 +183,18 @@ interface nsIFile : nsISupports
     attribute unsigned long permissions;
     attribute unsigned long permissionsOfLink;
 
     /**
      *  File Times are to be in milliseconds from
      *  midnight (00:00:00), January 1, 1970 Greenwich Mean
      *  Time (GMT).
      */
-    attribute int64_t lastModifiedTime;
-    attribute int64_t lastModifiedTimeOfLink;
+    attribute PRTime lastModifiedTime;
+    attribute PRTime lastModifiedTimeOfLink;
 
     /**
      *  WARNING!  On the Mac, getting/setting the file size with nsIFile
      *  only deals with the size of the data fork.  If you need to
      *  know the size of the combined data and resource forks use the
      *  GetFileSizeWithResFork() method defined on nsILocalFileMac.
      */
     attribute int64_t fileSize;
--- a/xpcom/io/nsLocalFileOS2.cpp
+++ b/xpcom/io/nsLocalFileOS2.cpp
@@ -1697,17 +1697,17 @@ nsLocalFile::Remove(bool recursive)
     if (rv == (nsresult)-1)
         rv = NSRESULT_FOR_ERRNO();
 
     MakeDirty();
     return rv;
 }
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTime(int64_t *aLastModifiedTime)
+nsLocalFile::GetLastModifiedTime(PRTime *aLastModifiedTime)
 {
     // Check we are correctly initialized.
     CHECK_mWorkingPath();
 
     NS_ENSURE_ARG(aLastModifiedTime);
 
     *aLastModifiedTime = 0;
     nsresult rv = Stat();
@@ -1718,40 +1718,40 @@ nsLocalFile::GetLastModifiedTime(int64_t
     int64_t usecPerMsec;
     LL_I2L(usecPerMsec, PR_USEC_PER_MSEC);
     LL_DIV(*aLastModifiedTime, mFileInfo64.modifyTime, usecPerMsec);
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTimeOfLink(int64_t *aLastModifiedTime)
+nsLocalFile::GetLastModifiedTimeOfLink(PRTime *aLastModifiedTime)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTime(int64_t aLastModifiedTime)
+nsLocalFile::SetLastModifiedTime(PRTime aLastModifiedTime)
 {
     // Check we are correctly initialized.
     CHECK_mWorkingPath();
 
     return nsLocalFile::SetModDate(aLastModifiedTime);
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTimeOfLink(int64_t aLastModifiedTime)
+nsLocalFile::SetLastModifiedTimeOfLink(PRTime aLastModifiedTime)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 nsresult
-nsLocalFile::SetModDate(int64_t aLastModifiedTime)
+nsLocalFile::SetModDate(PRTime aLastModifiedTime)
 {
     nsresult rv = Stat();
 
     if (NS_FAILED(rv))
         return rv;
 
     PRExplodedTime pret;
     FILESTATUS3 pathInfo;
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -958,72 +958,72 @@ nsLocalFile::Remove(bool recursive)
                 return rv;
         }
     }
 
     return NSRESULT_FOR_RETURN(rmdir(mPath.get()));
 }
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTime(int64_t *aLastModTime)
+nsLocalFile::GetLastModifiedTime(PRTime *aLastModTime)
 {
     CHECK_mPath();
     NS_ENSURE_ARG(aLastModTime);
 
     PRFileInfo64 info;
     if (PR_GetFileInfo64(mPath.get(), &info) != PR_SUCCESS)
         return NSRESULT_FOR_ERRNO();
-    int64_t modTime = int64_t(info.modifyTime);
+    PRTime modTime = info.modifyTime;
     if (modTime == 0)
         *aLastModTime = 0;
     else
-        *aLastModTime = modTime / int64_t(PR_USEC_PER_MSEC);
+        *aLastModTime = modTime / PR_USEC_PER_MSEC;
 
     return NS_OK;
 }
 
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTime(int64_t aLastModTime)
+nsLocalFile::SetLastModifiedTime(PRTime aLastModTime)
 {
     CHECK_mPath();
 
     int result;
     if (aLastModTime != 0) {
         ENSURE_STAT_CACHE();
         struct utimbuf ut;
         ut.actime = mCachedStat.st_atime;
 
         // convert milliseconds to seconds since the unix epoch
-        ut.modtime = (time_t)(double(aLastModTime) / PR_MSEC_PER_SEC);
+        ut.modtime = (time_t)(aLastModTime / PR_MSEC_PER_SEC);
         result = utime(mPath.get(), &ut);
     } else {
         result = utime(mPath.get(), nullptr);
     }
     return NSRESULT_FOR_RETURN(result);
 }
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTimeOfLink(int64_t *aLastModTimeOfLink)
+nsLocalFile::GetLastModifiedTimeOfLink(PRTime *aLastModTimeOfLink)
 {
     CHECK_mPath();
     NS_ENSURE_ARG(aLastModTimeOfLink);
 
     struct STAT sbuf;
     if (LSTAT(mPath.get(), &sbuf) == -1)
         return NSRESULT_FOR_ERRNO();
-    *aLastModTimeOfLink = int64_t(sbuf.st_mtime) * int64_t(PR_MSEC_PER_SEC);
+    *aLastModTimeOfLink = PRTime(sbuf.st_mtime) * PR_MSEC_PER_SEC;
 
     return NS_OK;
 }
 
 /*
  * utime(2) may or may not dereference symlinks, joy.
  */
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTimeOfLink(int64_t aLastModTimeOfLink)
+nsLocalFile::SetLastModifiedTimeOfLink(PRTime aLastModTimeOfLink)
 {
     return SetLastModifiedTime(aLastModTimeOfLink);
 }
 
 /*
  * Only send back permissions bits: maybe we want to send back the whole
  * mode_t to permit checks against other file types?
  */
--- a/xpcom/io/nsLocalFileWin.cpp
+++ b/xpcom/io/nsLocalFileWin.cpp
@@ -2245,17 +2245,17 @@ nsLocalFile::Remove(bool recursive)
             return ConvertWinError(GetLastError());
     }
 
     MakeDirty();
     return rv;
 }
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTime(int64_t *aLastModifiedTime)
+nsLocalFile::GetLastModifiedTime(PRTime *aLastModifiedTime)
 {
     // Check we are correctly initialized.
     CHECK_mWorkingPath();
 
     NS_ENSURE_ARG(aLastModifiedTime);
  
     // get the modified time of the target as determined by mFollowSymlinks
     // If true, then this will be for the target of the shortcut file, 
@@ -2270,17 +2270,17 @@ nsLocalFile::GetLastModifiedTime(int64_t
     int64_t usecPerMsec;
     LL_I2L(usecPerMsec, PR_USEC_PER_MSEC);
     LL_DIV(*aLastModifiedTime, mFileInfo64.modifyTime, usecPerMsec);
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::GetLastModifiedTimeOfLink(int64_t *aLastModifiedTime)
+nsLocalFile::GetLastModifiedTimeOfLink(PRTime *aLastModifiedTime)
 {
     // Check we are correctly initialized.
     CHECK_mWorkingPath();
 
     NS_ENSURE_ARG(aLastModifiedTime);
  
     // The caller is assumed to have already called IsSymlink 
     // and to have found that this file is a link. 
@@ -2294,17 +2294,17 @@ nsLocalFile::GetLastModifiedTimeOfLink(i
     int64_t usecPerMsec;
     LL_I2L(usecPerMsec, PR_USEC_PER_MSEC);
     LL_DIV(*aLastModifiedTime, info.modifyTime, usecPerMsec);
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTime(int64_t aLastModifiedTime)
+nsLocalFile::SetLastModifiedTime(PRTime aLastModifiedTime)
 {
     // Check we are correctly initialized.
     CHECK_mWorkingPath();
 
     nsresult rv = ResolveAndStat();
     if (NS_FAILED(rv))
         return rv;
 
@@ -2317,30 +2317,30 @@ nsLocalFile::SetLastModifiedTime(int64_t
     if (NS_SUCCEEDED(rv))
         MakeDirty();
 
     return rv;
 }
 
 
 NS_IMETHODIMP
-nsLocalFile::SetLastModifiedTimeOfLink(int64_t aLastModifiedTime)
+nsLocalFile::SetLastModifiedTimeOfLink(PRTime aLastModifiedTime)
 {
     // The caller is assumed to have already called IsSymlink 
     // and to have found that this file is a link. 
 
     nsresult rv = SetModDate(aLastModifiedTime, mWorkingPath.get());
     if (NS_SUCCEEDED(rv))
         MakeDirty();
 
     return rv;
 }
 
 nsresult
-nsLocalFile::SetModDate(int64_t aLastModifiedTime, const PRUnichar *filePath)
+nsLocalFile::SetModDate(PRTime aLastModifiedTime, const PRUnichar *filePath)
 {
     // The FILE_FLAG_BACKUP_SEMANTICS is required in order to change the
     // modification time for directories.
     HANDLE file = ::CreateFileW(filePath,          // pointer to name of the file
                                 GENERIC_WRITE,     // access (write) mode
                                 0,                 // share mode
                                 NULL,              // pointer to security attributes
                                 OPEN_EXISTING,     // how to create
--- a/xpcom/system/nsIXULRuntime.idl
+++ b/xpcom/system/nsIXULRuntime.idl
@@ -83,16 +83,16 @@ interface nsIXULRuntime : nsISupports
    */
   void ensureContentProcess();
 
   /**
    * Modification time of the profile lock before the profile was locked on
    * this startup. Used to know the last time the profile was used and not
    * closed cleanly. This is set to 0 if there was no existing profile lock.
    */
-  readonly attribute int64_t replacedLockTime;
+  readonly attribute PRTime replacedLockTime;
 
   /**
    * Local ID of the minidump generated when the process crashed
    * on the previous run. Can be passed directly to CrashSubmit.submit.
    */
   readonly attribute DOMString lastRunCrashID;
 };