fix compare
[lttv.git] / ltt / branches / poly / ltt / time.h
index 2aafdb23ef9d9999a0640c1b435bcef2d1fd25ef..2bf3048e2f8b9ecbf234ce4bacc73dea9106c386 100644 (file)
@@ -1,5 +1,6 @@
 /* This file is part of the Linux Trace Toolkit trace reading library
  * Copyright (C) 2003-2004 Michel Dagenais
+ *               2005 Mathieu Desnoyers
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -89,10 +90,14 @@ static inline LttTime ltt_time_add(LttTime t1, LttTime t2)
 static inline int ltt_time_compare(LttTime t1, LttTime t2)
 {
   int ret=0;
-  if(likely(t1.tv_sec > t2.tv_sec)) ret = 1;
-  else if(unlikely(t1.tv_sec < t2.tv_sec)) ret = -1;
-  else if(likely(t1.tv_nsec > t2.tv_nsec)) ret = 1;
-  else if(unlikely(t1.tv_nsec < t2.tv_nsec)) ret = -1;
+  //if(likely(t1.tv_sec > t2.tv_sec)) ret = 1;
+  //else if(unlikely(t1.tv_sec < t2.tv_sec)) ret = -1;
+  //else if(likely(t1.tv_nsec > t2.tv_nsec)) ret = 1;
+  //else if(unlikely(t1.tv_nsec < t2.tv_nsec)) ret = -1;
+  if(likely((long)t1.tv_sec - (long)t2.tv_sec > 0)) ret = 1;
+  else if(unlikely((long)t1.tv_sec - (long)t2.tv_sec < 0)) ret = -1;
+  else if(likely((long)t1.tv_nsec - (long)t2.tv_nsec > 0)) ret = 1;
+  else if(unlikely((long)t1.tv_nsec - (long)t2.tv_nsec < 0)) ret = -1;
   
   return ret;
 }
@@ -213,7 +218,7 @@ static inline LttTime ltt_time_div(LttTime t1, double d)
 
 static inline guint64 ltt_time_to_uint64(LttTime t1)
 {
-  return (guint64)((t1.tv_sec*LTT_TIME_UINT_SHIFT_CONST) >> LTT_TIME_UINT_SHIFT)
+  return (((guint64)t1.tv_sec*LTT_TIME_UINT_SHIFT_CONST) << LTT_TIME_UINT_SHIFT)
                        + (guint64)t1.tv_nsec;
 }
 
This page took 0.023127 seconds and 4 git commands to generate.