aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2017-11-09 16:56:57 +0200
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2017-11-09 16:56:57 +0200
commit8c4296b7268f72e30e66879353b012ce52effbea (patch)
tree773772ae44602b2ac4ca4c78d5bffa57ea893982
parent86f7e1b6c95600b4df01f37fd96665a5956e210b (diff)
downloadlibrin-8c4296b7268f72e30e66879353b012ce52effbea.tar.gz
librin-8c4296b7268f72e30e66879353b012ce52effbea.tar.bz2
librin-8c4296b7268f72e30e66879353b012ce52effbea.zip
time: fix normalization.
-rw-r--r--src/time/time.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/time/time.c b/src/time/time.c
index 2c87cba..dbedc65 100644
--- a/src/time/time.c
+++ b/src/time/time.c
@@ -52,11 +52,11 @@ struct timespec rin_time_normalize(const struct timespec * const t)
}
if (ret.tv_nsec > 0) {
- ret.tv_sec += ret.tv_nsec / tv_nsec_max;
- ret.tv_nsec = ret.tv_nsec % tv_nsec_max;
+ ret.tv_sec += ret.tv_nsec / (tv_nsec_max + 1);
+ ret.tv_nsec = ret.tv_nsec % (tv_nsec_max + 1);
} else {
- ret.tv_sec += ret.tv_nsec / tv_nsec_max - 1;
- ret.tv_nsec = tv_nsec_max - ret.tv_nsec % tv_nsec_max;
+ ret.tv_sec += ret.tv_nsec / (tv_nsec_max + 1) - 1;
+ ret.tv_nsec = (tv_nsec_max + 1) - (-ret.tv_nsec) % (tv_nsec_max + 1);
}
return ret;