1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-12 20:58:37 +03:00

r5937: - performance improvement to talloc_asprintf_append()

- allow standalone talloc to use gcc printf attributes
(This used to be commit e25aa54e962796e6e7385afed57aa287ef6f869d)
This commit is contained in:
Andrew Tridgell 2005-03-22 04:22:39 +00:00 committed by Gerald (Jerry) Carter
parent 455be8fb82
commit 340d35be2d
2 changed files with 10 additions and 5 deletions

View File

@ -946,16 +946,13 @@ static char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) PRINT
static char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap)
{
struct talloc_chunk *tc = talloc_chunk_from_ptr(s);
int len, s_len;
va_list ap2;
VA_COPY(ap2, ap);
if (s) {
s_len = strlen(s);
} else {
s_len = 0;
}
s_len = tc->size - 1;
len = vsnprintf(NULL, 0, fmt, ap2);
s = talloc_realloc(NULL, s, char, s_len + len+1);

View File

@ -75,8 +75,16 @@ typedef void TALLOC_CTX;
#endif
#ifndef PRINTF_ATTRIBUTE
#if (__GNUC__ >= 3)
/** Use gcc attribute to check printf fns. a1 is the 1-based index of
* the parameter containing the format, and a2 the index of the first
* argument. Note that some gcc 2.x versions don't handle this
* properly **/
#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
#else
#define PRINTF_ATTRIBUTE(a1, a2)
#endif
#endif
/* The following definitions come from talloc.c */