dgaudet 98/09/22 08:43:43
Modified: src/main http_log.c
Log:
ap_table_set() causes an ap_pstrdup() of both arguments, one of the
arguments is a constant and it's a waste to pstrdup it. Furthermore using
a static local buffer means there is a static limit to the message length.
Also, ap_pvsprintf() can get away with zero-copies of the output in most
cases, whereas ap_pstrdup() always copies the output at least once.
Unlike Ken's claim there's no "gyration" required by ap_pv?sprintf()
to figure out the string length. Clean this all up.
Revision Changes Path
1.69 +2 -4 apache-1.3/src/main/http_log.c
Index: http_log.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_log.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- http_log.c 1998/09/21 17:29:45 1.68
+++ http_log.c 1998/09/22 15:43:42 1.69
@@ -441,10 +441,8 @@
va_start(args, fmt);
log_error_core(file, line, level, r->server, r, fmt, args);
if (ap_table_get(r->notes, "error-notes") == NULL) {
- char errstr[MAX_STRING_LEN];
-
- ap_vsnprintf(errstr, sizeof(errstr), fmt, args);
- ap_table_set(r->notes, "error-notes", errstr);
+ ap_table_setn(r->notes, "error-notes",
+ ap_pvsprintf(r->pool, fmt, args));
}
va_end(args);
}