diff options
Diffstat (limited to 'src/plist.c')
| -rw-r--r-- | src/plist.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plist.c b/src/plist.c index 4fc2f00..a33a6fb 100644 --- a/src/plist.c +++ b/src/plist.c | |||
| @@ -1701,9 +1701,12 @@ int plist_date_val_compare(plist_t datenode, int32_t cmpsec, int32_t cmpusec) | |||
| 1701 | if (!PLIST_IS_DATE(datenode)) { | 1701 | if (!PLIST_IS_DATE(datenode)) { |
| 1702 | return -1; | 1702 | return -1; |
| 1703 | } | 1703 | } |
| 1704 | int32_t sec = 0; | 1704 | plist_data_t data = plist_get_data(datenode); |
| 1705 | int32_t usec = 0; | 1705 | assert(data->length == sizeof(double)); |
| 1706 | plist_get_date_val(datenode, &sec, &usec); | 1706 | double val = data->realval; |
| 1707 | int32_t sec = (int32_t)val; | ||
| 1708 | val = fabs((val - (int64_t)val) * 1000000); | ||
| 1709 | int32_t usec = (int32_t)val; | ||
| 1707 | uint64_t dateval = ((int64_t)sec << 32) | usec; | 1710 | uint64_t dateval = ((int64_t)sec << 32) | usec; |
| 1708 | uint64_t cmpval = ((int64_t)cmpsec << 32) | cmpusec; | 1711 | uint64_t cmpval = ((int64_t)cmpsec << 32) | cmpusec; |
| 1709 | if (dateval == cmpval) { | 1712 | if (dateval == cmpval) { |
