diff options
Diffstat (limited to 'src/bplist.c')
| -rw-r--r-- | src/bplist.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/bplist.c b/src/bplist.c index bb73b31..fbe1b63 100644 --- a/src/bplist.c +++ b/src/bplist.c | |||
| @@ -284,11 +284,7 @@ static plist_t parse_date_node(const char **bnode, uint8_t size) | |||
| 284 | plist_t node = parse_real_node(bnode, size); | 284 | plist_t node = parse_real_node(bnode, size); |
| 285 | plist_data_t data = plist_get_data(node); | 285 | plist_data_t data = plist_get_data(node); |
| 286 | 286 | ||
| 287 | double time_real = data->realval; | ||
| 288 | data->timeval.tv_sec = (long) time_real; | ||
| 289 | data->timeval.tv_usec = (time_real - (long) time_real) * 1000000; | ||
| 290 | data->type = PLIST_DATE; | 287 | data->type = PLIST_DATE; |
| 291 | data->length = sizeof(struct timeval); | ||
| 292 | 288 | ||
| 293 | return node; | 289 | return node; |
| 294 | } | 290 | } |
| @@ -728,6 +724,7 @@ static unsigned int plist_data_hash(const void* key) | |||
| 728 | case PLIST_BOOLEAN: | 724 | case PLIST_BOOLEAN: |
| 729 | case PLIST_UINT: | 725 | case PLIST_UINT: |
| 730 | case PLIST_REAL: | 726 | case PLIST_REAL: |
| 727 | case PLIST_DATE: | ||
| 731 | case PLIST_UID: | 728 | case PLIST_UID: |
| 732 | buff = (char *) &data->intval; //works also for real as we use an union | 729 | buff = (char *) &data->intval; //works also for real as we use an union |
| 733 | size = 8; | 730 | size = 8; |
| @@ -744,10 +741,6 @@ static unsigned int plist_data_hash(const void* key) | |||
| 744 | buff = (char *) &key; | 741 | buff = (char *) &key; |
| 745 | size = sizeof(const void*); | 742 | size = sizeof(const void*); |
| 746 | break; | 743 | break; |
| 747 | case PLIST_DATE: | ||
| 748 | buff = (char *) &(data->timeval); | ||
| 749 | size = data->length; | ||
| 750 | break; | ||
| 751 | default: | 744 | default: |
| 752 | break; | 745 | break; |
| 753 | } | 746 | } |
| @@ -1183,7 +1176,7 @@ PLIST_API void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * length) | |||
| 1183 | write_dict(bplist_buff, ptr_array_index(objects, i), ref_table, dict_param_size); | 1176 | write_dict(bplist_buff, ptr_array_index(objects, i), ref_table, dict_param_size); |
| 1184 | break; | 1177 | break; |
| 1185 | case PLIST_DATE: | 1178 | case PLIST_DATE: |
| 1186 | write_date(bplist_buff, data->timeval.tv_sec + (double) data->timeval.tv_usec / 1000000); | 1179 | write_date(bplist_buff, data->realval); |
| 1187 | break; | 1180 | break; |
| 1188 | case PLIST_UID: | 1181 | case PLIST_UID: |
| 1189 | write_uid(bplist_buff, data->intval); | 1182 | write_uid(bplist_buff, data->intval); |
