فهرست منبع

Slap u64 on everything time-y (#10984)

Lars Müller 3 سال پیش
والد
کامیت
b5eda416ce
2فایلهای تغییر یافته به همراه3 افزوده شده و 4 حذف شده
  1. 0 1
      doc/lua_api.txt
  2. 3 3
      src/porting.h

+ 0 - 1
doc/lua_api.txt

@@ -3268,7 +3268,6 @@ Helper functions
     * returns true when the passed number represents NaN.
 * `minetest.get_us_time()`
     * returns time with microsecond precision. May not return wall time.
-    * This value might overflow on certain 32-bit systems!
 * `table.copy(table)`: returns a table
     * returns a deep copy of `table`
 * `table.indexof(list, val)`: returns the smallest numerical index containing

+ 3 - 3
src/porting.h

@@ -234,21 +234,21 @@ inline u64 getTimeMs()
 {
 	struct timespec ts;
 	os_get_clock(&ts);
-	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
+	return ((u64) ts.tv_sec) * 1000LL + ((u64) ts.tv_nsec) / 1000000LL;
 }
 
 inline u64 getTimeUs()
 {
 	struct timespec ts;
 	os_get_clock(&ts);
-	return ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
+	return ((u64) ts.tv_sec) * 1000000LL + ((u64) ts.tv_nsec) / 1000LL;
 }
 
 inline u64 getTimeNs()
 {
 	struct timespec ts;
 	os_get_clock(&ts);
-	return ts.tv_sec * 1000000000 + ts.tv_nsec;
+	return ((u64) ts.tv_sec) * 1000000000LL + ((u64) ts.tv_nsec);
 }
 
 #endif