Changeset: c34c6e8589ab for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c34c6e8589ab Modified Files: monetdb5/modules/atoms/mtime.c Branch: Feb2013 Log Message:
fromtime can be called with NULL pointer, just like fromdate. diffs (105 lines): diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mtime.c +++ b/monetdb5/modules/atoms/mtime.c @@ -394,17 +394,27 @@ totime(int hour, int min, int sec, int m void fromtime(int n, int *hour, int *min, int *sec, int *msec) { + int h, m, s, ms; + if (n != int_nil) { - *hour = n / 3600000; - n -= (*hour) * 3600000; - *min = n / 60000; - n -= (*min) * 60000; - *sec = n / 1000; - n -= (*sec) * 1000; - *msec = n; + h = n / 3600000; + n -= h * 3600000; + m = n / 60000; + n -= m * 60000; + s = n / 1000; + n -= s * 1000; + ms = n; } else { - *hour = *min = *sec = *msec = int_nil; + h = m = s = ms = int_nil; } + if (hour) + *hour = h; + if (min) + *min = m; + if (sec) + *sec = s; + if (msec) + *msec = ms; } /* matches regardless of case and extra spaces */ @@ -1718,11 +1728,10 @@ MTIMEdate_extract_dayofweek(int *ret, da str MTIMEdaytime_extract_hours(int *ret, daytime *v) { - int dummy; if (*v == daytime_nil) { *ret = int_nil; } else { - fromtime((int) *v, ret, &dummy, &dummy, &dummy); + fromtime((int) *v, ret, NULL, NULL, NULL); } return MAL_SUCCEED; } @@ -1731,11 +1740,10 @@ MTIMEdaytime_extract_hours(int *ret, day str MTIMEdaytime_extract_minutes(int *ret, daytime *v) { - int dummy; if (*v == daytime_nil) { *ret = int_nil; } else { - fromtime((int) *v, &dummy, ret, &dummy, &dummy); + fromtime((int) *v, NULL, ret, NULL, NULL); } return MAL_SUCCEED; } @@ -1744,11 +1752,10 @@ MTIMEdaytime_extract_minutes(int *ret, d str MTIMEdaytime_extract_seconds(int *ret, daytime *v) { - int dummy; if (*v == daytime_nil) { *ret = int_nil; } else { - fromtime((int) *v, &dummy, &dummy, ret, &dummy); + fromtime((int) *v, NULL, NULL, ret, NULL); } return MAL_SUCCEED; } @@ -1758,12 +1765,11 @@ str MTIMEdaytime_extract_sql_seconds(int *ret, daytime *v) { int sec, milli; - int dummy; if (*v == daytime_nil) { *ret = int_nil; } else { - fromtime((int) *v, &dummy, &dummy, &sec, &milli); + fromtime((int) *v, NULL, NULL, &sec, &milli); *ret = sec * 1000 + milli; } return MAL_SUCCEED; @@ -1773,11 +1779,10 @@ MTIMEdaytime_extract_sql_seconds(int *re str MTIMEdaytime_extract_milliseconds(int *ret, daytime *v) { - int dummy; if (*v == daytime_nil) { *ret = int_nil; } else { - fromtime((int) *v, &dummy, &dummy, &dummy, ret); + fromtime((int) *v, NULL, NULL, NULL, ret); } return MAL_SUCCEED; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list