aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/date.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index bdda749bed0..9ead120245f 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.129 2007/02/27 23:48:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.130 2007/05/30 19:38:05 neilc Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1635,7 +1635,7 @@ time_text(PG_FUNCTION_ARGS)
result = palloc(len);
SET_VARSIZE(result, len);
- memcpy(VARDATA(result), str, (len - VARHDRSZ));
+ memcpy(VARDATA(result), str, len - VARHDRSZ);
pfree(str);
@@ -1651,11 +1651,9 @@ time_text(PG_FUNCTION_ARGS)
Datum
text_time(PG_FUNCTION_ARGS)
{
- text *str = PG_GETARG_TEXT_P(0);
- int i;
- char *sp,
- *dp,
- dstr[MAXDATELEN + 1];
+ text *str = PG_GETARG_TEXT_P(0);
+ char dstr[MAXDATELEN + 1];
+ size_t len;
if (VARSIZE(str) - VARHDRSZ > MAXDATELEN)
ereport(ERROR,
@@ -1663,11 +1661,9 @@ text_time(PG_FUNCTION_ARGS)
errmsg("invalid input syntax for type time: \"%s\"",
VARDATA(str))));
- sp = VARDATA(str);
- dp = dstr;
- for (i = 0; i < (VARSIZE(str) - VARHDRSZ); i++)
- *dp++ = *sp++;
- *dp = '\0';
+ len = VARSIZE(str) - VARHDRSZ;
+ memcpy(dstr, VARDATA(str), len);
+ dstr[len] = '\0';
return DirectFunctionCall3(time_in,
CStringGetDatum(dstr),