aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <SmallJoker@users.noreply.github.com>2017-05-26 14:03:36 +0200
committerGitHub <noreply@github.com>2017-05-26 14:03:36 +0200
commitd99b6fed5517797bfafe4bbb307963967f0ca749 (patch)
tree0a4ff946a9d8bbcd1e921d3981eec96e988bc5c8
parent4d5ce8478c959a4ee5b13ef9ba7e46b28d089a21 (diff)
downloadminetest-d99b6fed5517797bfafe4bbb307963967f0ca749.tar.gz
minetest-d99b6fed5517797bfafe4bbb307963967f0ca749.tar.bz2
minetest-d99b6fed5517797bfafe4bbb307963967f0ca749.zip
Time: Change old `u32` timestamps to 64-bit (#5818)
MacOSX build fix + cleanups
-rw-r--r--src/clientiface.cpp4
-rw-r--r--src/clientiface.h6
-rw-r--r--src/guiFormSpecMenu.cpp4
-rw-r--r--src/guiFormSpecMenu.h4
-rw-r--r--src/hud.cpp2
-rw-r--r--src/intlGUIEditBox.h2
-rw-r--r--src/map.cpp2
-rw-r--r--src/map.h2
-rw-r--r--src/network/connection.h2
-rw-r--r--src/profiler.cpp30
-rw-r--r--src/profiler.h44
-rw-r--r--src/touchscreengui.cpp4
-rw-r--r--src/unittest/test.cpp8
-rw-r--r--src/unittest/test.h4
-rw-r--r--src/util/timetaker.cpp23
-rw-r--r--src/util/timetaker.h14
-rw-r--r--src/voxel.cpp12
-rw-r--r--src/voxel.h4
18 files changed, 75 insertions, 96 deletions
diff --git a/src/clientiface.cpp b/src/clientiface.cpp
index 356281ca6..68bd4afe7 100644
--- a/src/clientiface.cpp
+++ b/src/clientiface.cpp
@@ -590,9 +590,9 @@ void RemoteClient::notifyEvent(ClientStateEvent event)
}
}
-u32 RemoteClient::uptime() const
+u64 RemoteClient::uptime() const
{
- return porting::getTime(PRECISION_SECONDS) - m_connection_time;
+ return porting::getTimeS() - m_connection_time;
}
ClientInterface::ClientInterface(con::Connection* con)
diff --git a/src/clientiface.h b/src/clientiface.h
index a219ed5fc..d2299c879 100644
--- a/src/clientiface.h
+++ b/src/clientiface.h
@@ -266,7 +266,7 @@ public:
m_version_patch(0),
m_full_version("unknown"),
m_deployed_compression(0),
- m_connection_time(porting::getTime(PRECISION_SECONDS))
+ m_connection_time(porting::getTimeS())
{
}
~RemoteClient()
@@ -345,7 +345,7 @@ public:
{ serialization_version = m_pending_serialization_version; }
/* get uptime */
- u32 uptime() const;
+ u64 uptime() const;
/* set version information */
void setVersionInfo(u8 major, u8 minor, u8 patch, const std::string &full)
@@ -432,7 +432,7 @@ private:
/*
time this client was created
*/
- const u32 m_connection_time;
+ const u64 m_connection_time;
};
class ClientInterface {
diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp
index 64642cf1f..971d505fd 100644
--- a/src/guiFormSpecMenu.cpp
+++ b/src/guiFormSpecMenu.cpp
@@ -2658,7 +2658,7 @@ void GUIFormSpecMenu::drawMenu()
if (hovered != NULL) {
s32 id = hovered->getID();
- u32 delta = 0;
+ u64 delta = 0;
if (id == -1) {
m_old_tooltip_id = id;
m_old_tooltip = L"";
@@ -3247,7 +3247,7 @@ bool GUIFormSpecMenu::DoubleClickDetection(const SEvent event)
m_doubleclickdetect[1].time = porting::getTimeMs();
}
else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) {
- u32 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs());
+ u64 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs());
if (delta > 400) {
return false;
}
diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h
index 18ccf1c3a..557a1cc9f 100644
--- a/src/guiFormSpecMenu.h
+++ b/src/guiFormSpecMenu.h
@@ -420,8 +420,8 @@ protected:
v2s32 m_old_pointer; // Mouse position after previous mouse event
gui::IGUIStaticText *m_tooltip_element;
- u32 m_tooltip_show_delay;
- s64 m_hovered_time;
+ u64 m_tooltip_show_delay;
+ u64 m_hovered_time;
s32 m_old_tooltip_id;
std::wstring m_old_tooltip;
diff --git a/src/hud.cpp b/src/hud.cpp
index 3e4162b64..72145b4da 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -626,7 +626,7 @@ void Hud::resizeHotbar() {
}
struct MeshTimeInfo {
- s64 time;
+ u64 time;
scene::IMesh *mesh;
};
diff --git a/src/intlGUIEditBox.h b/src/intlGUIEditBox.h
index e3ee15a30..bb617476c 100644
--- a/src/intlGUIEditBox.h
+++ b/src/intlGUIEditBox.h
@@ -155,7 +155,7 @@ namespace gui
gui::IGUIFont *OverrideFont, *LastBreakFont;
IOSOperator* Operator;
- u32 BlinkStartTime;
+ u64 BlinkStartTime;
s32 CursorPos;
s32 HScrollPos, VScrollPos; // scroll position in characters
u32 Max;
diff --git a/src/map.cpp b/src/map.cpp
index 63e1e4ccd..641b7d2dd 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -981,7 +981,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,
time_until_purge *= 1000; // seconds -> milliseconds
- u32 curr_time = porting::getTime(PRECISION_MILLI);
+ u64 curr_time = porting::getTimeMs();
u32 prev_unprocessed = m_unprocessed_count;
m_unprocessed_count = m_transforming_liquid.size();
diff --git a/src/map.h b/src/map.h
index 7e597bef6..41a1a246b 100644
--- a/src/map.h
+++ b/src/map.h
@@ -343,7 +343,7 @@ protected:
private:
f32 m_transforming_liquid_loop_count_multiplier;
u32 m_unprocessed_count;
- u32 m_inc_trending_up_start_time; // milliseconds
+ u64 m_inc_trending_up_start_time; // milliseconds
bool m_queue_size_timer_started;
DISABLE_CLASS_COPY(Map);
diff --git a/src/network/connection.h b/src/network/connection.h
index 3a8388522..8b7ed9773 100644
--- a/src/network/connection.h
+++ b/src/network/connection.h
@@ -769,7 +769,7 @@ class Peer {
// Seconds from last receive
float m_timeout_counter;
- u32 m_last_timeout_check;
+ u64 m_last_timeout_check;
};
class UDPPeer : public Peer
diff --git a/src/profiler.cpp b/src/profiler.cpp
index 197e094f6..8e997442c 100644
--- a/src/profiler.cpp
+++ b/src/profiler.cpp
@@ -21,3 +21,33 @@ with this program; if not, write to the Free Software Foundation, Inc.,
static Profiler main_profiler;
Profiler *g_profiler = &main_profiler;
+ScopeProfiler::ScopeProfiler(
+ Profiler *profiler, const std::string &name, ScopeProfilerType type)
+ : m_profiler(profiler), m_name(name), m_timer(NULL), m_type(type)
+{
+ if (m_profiler)
+ m_timer = new TimeTaker(m_name);
+}
+
+ScopeProfiler::~ScopeProfiler()
+{
+ if (!m_timer)
+ return;
+
+ float duration_ms = m_timer->stop(true);
+ float duration = duration_ms / 1000.0;
+ if (m_profiler) {
+ switch (m_type) {
+ case SPT_ADD:
+ m_profiler->add(m_name, duration);
+ break;
+ case SPT_AVG:
+ m_profiler->avg(m_name, duration);
+ break;
+ case SPT_GRAPH_ADD:
+ m_profiler->graphAdd(m_name, duration);
+ break;
+ }
+ }
+ delete m_timer;
+}
diff --git a/src/profiler.h b/src/profiler.h
index 6da115972..ce60c6262 100644
--- a/src/profiler.h
+++ b/src/profiler.h
@@ -193,48 +193,8 @@ class ScopeProfiler
{
public:
ScopeProfiler(Profiler *profiler, const std::string &name,
- enum ScopeProfilerType type = SPT_ADD):
- m_profiler(profiler),
- m_name(name),
- m_timer(NULL),
- m_type(type)
- {
- if(m_profiler)
- m_timer = new TimeTaker(m_name.c_str());
- }
- // name is copied
- ScopeProfiler(Profiler *profiler, const char *name,
- enum ScopeProfilerType type = SPT_ADD):
- m_profiler(profiler),
- m_name(name),
- m_timer(NULL),
- m_type(type)
- {
- if(m_profiler)
- m_timer = new TimeTaker(m_name.c_str());
- }
- ~ScopeProfiler()
- {
- if(m_timer)
- {
- float duration_ms = m_timer->stop(true);
- float duration = duration_ms / 1000.0;
- if(m_profiler){
- switch(m_type){
- case SPT_ADD:
- m_profiler->add(m_name, duration);
- break;
- case SPT_AVG:
- m_profiler->avg(m_name, duration);
- break;
- case SPT_GRAPH_ADD:
- m_profiler->graphAdd(m_name, duration);
- break;
- }
- }
- delete m_timer;
- }
- }
+ ScopeProfilerType type = SPT_ADD);
+ ~ScopeProfiler();
private:
Profiler *m_profiler;
std::string m_name;
diff --git a/src/touchscreengui.cpp b/src/touchscreengui.cpp
index f32679ca4..0139b8c4f 100644
--- a/src/touchscreengui.cpp
+++ b/src/touchscreengui.cpp
@@ -922,7 +922,7 @@ bool TouchScreenGUI::doubleTapDetection()
m_key_events[1].x = m_move_downlocation.X;
m_key_events[1].y = m_move_downlocation.Y;
- u32 delta = porting::getDeltaMs(m_key_events[0].down_time, porting::getTimeMs());
+ u64 delta = porting::getDeltaMs(m_key_events[0].down_time, porting::getTimeMs());
if (delta > 400)
return false;
@@ -1006,7 +1006,7 @@ void TouchScreenGUI::step(float dtime)
(!m_move_has_really_moved) &&
(!m_move_sent_as_mouse_event)) {
- u32 delta = porting::getDeltaMs(m_move_downtime, porting::getTimeMs());
+ u64 delta = porting::getDeltaMs(m_move_downtime, porting::getTimeMs());
if (delta > MIN_DIG_TIME_MS) {
m_shootline = m_device
diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp
index 9d223b82d..570807ba7 100644
--- a/src/unittest/test.cpp
+++ b/src/unittest/test.cpp
@@ -229,7 +229,7 @@ bool run_tests()
{
DSTACK(FUNCTION_NAME);
- u32 t1 = porting::getTime(PRECISION_MILLI);
+ u64 t1 = porting::getTimeMs();
TestGameDef gamedef;
g_logger.setLevelSilenced(LL_ERROR, true);
@@ -246,7 +246,7 @@ bool run_tests()
num_total_tests_run += testmods[i]->num_tests_run;
}
- u32 tdiff = porting::getTime(PRECISION_MILLI) - t1;
+ u64 tdiff = porting::getTimeMs() - t1;
g_logger.setLevelSilenced(LL_ERROR, false);
@@ -273,12 +273,12 @@ bool run_tests()
bool TestBase::testModule(IGameDef *gamedef)
{
rawstream << "======== Testing module " << getName() << std::endl;
- u32 t1 = porting::getTime(PRECISION_MILLI);
+ u64 t1 = porting::getTimeMs();
runTests(gamedef);
- u32 tdiff = porting::getTime(PRECISION_MILLI) - t1;
+ u64 tdiff = porting::getTimeMs() - t1;
rawstream << "======== Module " << getName() << " "
<< (num_tests_failed ? "failed" : "passed") << " (" << num_tests_failed
<< " failures / " << num_tests_run << " tests) - " << tdiff
diff --git a/src/unittest/test.h b/src/unittest/test.h
index e60e657cc..bf76e8bb2 100644
--- a/src/unittest/test.h
+++ b/src/unittest/test.h
@@ -33,7 +33,7 @@ class TestFailedException : public std::exception {
// Runs a unit test and reports results
#define TEST(fxn, ...) do { \
- u32 t1 = porting::getTime(PRECISION_MILLI); \
+ u64 t1 = porting::getTimeMs(); \
try { \
fxn(__VA_ARGS__); \
rawstream << "[PASS] "; \
@@ -46,7 +46,7 @@ class TestFailedException : public std::exception {
num_tests_failed++; \
} \
num_tests_run++; \
- u32 tdiff = porting::getTime(PRECISION_MILLI) - t1; \
+ u64 tdiff = porting::getTimeMs() - t1; \
rawstream << #fxn << " - " << tdiff << "ms" << std::endl; \
} while (0)
diff --git a/src/util/timetaker.cpp b/src/util/timetaker.cpp
index 0e92696ac..ac686c3a3 100644
--- a/src/util/timetaker.cpp
+++ b/src/util/timetaker.cpp
@@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "../log.h"
#include <ostream>
-TimeTaker::TimeTaker(const char *name, u32 *result, TimePrecision prec)
+TimeTaker::TimeTaker(const std::string &name, u64 *result, TimePrecision prec)
{
m_name = name;
m_result = result;
@@ -32,18 +32,13 @@ TimeTaker::TimeTaker(const char *name, u32 *result, TimePrecision prec)
m_time1 = porting::getTime(prec);
}
-u32 TimeTaker::stop(bool quiet)
+u64 TimeTaker::stop(bool quiet)
{
- if(m_running)
- {
- u32 time2 = porting::getTime(m_precision);
- u32 dtime = time2 - m_time1;
- if(m_result != NULL)
- {
+ if (m_running) {
+ u64 dtime = porting::getTime(m_precision) - m_time1;
+ if (m_result != NULL) {
(*m_result) += dtime;
- }
- else
- {
+ } else {
if (!quiet) {
static const char* const units[] = {
"s" /* PRECISION_SECONDS */,
@@ -62,10 +57,8 @@ u32 TimeTaker::stop(bool quiet)
return 0;
}
-u32 TimeTaker::getTimerTime()
+u64 TimeTaker::getTimerTime()
{
- u32 time2 = porting::getTime(m_precision);
- u32 dtime = time2 - m_time1;
- return dtime;
+ return porting::getTime(m_precision) - m_time1;
}
diff --git a/src/util/timetaker.h b/src/util/timetaker.h
index 5512c205f..c10f4f535 100644
--- a/src/util/timetaker.h
+++ b/src/util/timetaker.h
@@ -30,24 +30,24 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class TimeTaker
{
public:
- TimeTaker(const char *name, u32 *result=NULL,
- TimePrecision=PRECISION_MILLI);
+ TimeTaker(const std::string &name, u64 *result=NULL,
+ TimePrecision prec=PRECISION_MILLI);
~TimeTaker()
{
stop();
}
- u32 stop(bool quiet=false);
+ u64 stop(bool quiet=false);
- u32 getTimerTime();
+ u64 getTimerTime();
private:
- const char *m_name;
- u32 m_time1;
+ std::string m_name;
+ u64 m_time1;
bool m_running;
TimePrecision m_precision;
- u32 *m_result;
+ u64 *m_result;
};
#endif
diff --git a/src/voxel.cpp b/src/voxel.cpp
index 87773b240..78efde5bb 100644
--- a/src/voxel.cpp
+++ b/src/voxel.cpp
@@ -27,14 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
/*
Debug stuff
*/
-u32 addarea_time = 0;
-u32 emerge_time = 0;
-u32 emerge_load_time = 0;
-u32 clearflag_time = 0;
-//u32 getwaterpressure_time = 0;
-//u32 spreadwaterpressure_time = 0;
-u32 updateareawaterpressure_time = 0;
-u32 flowwater_pre_time = 0;
+u64 addarea_time = 0;
+u64 emerge_time = 0;
+u64 emerge_load_time = 0;
+u64 clearflag_time = 0;
VoxelManipulator::VoxelManipulator():
diff --git a/src/voxel.h b/src/voxel.h
index 58ad39be4..3a64ccc79 100644
--- a/src/voxel.h
+++ b/src/voxel.h
@@ -49,8 +49,8 @@ class INodeDefManager;
/*
Debug stuff
*/
-extern u32 emerge_time;
-extern u32 emerge_load_time;
+extern u64 emerge_time;
+extern u64 emerge_load_time;
/*
This class resembles aabbox3d<s16> a lot, but has inclusive