X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-usertrace%2Fltt%2Fltt-facility-custom-user_generic.h;h=9b56ff8f3eacf7a3e816112df398bac35e8fcf37;hb=9b0645fdadd7e3440a69f99338ef8317ca56c61a;hp=c819e3aa597564077b509a7f5f31a4fd28156fec;hpb=3a4541a514dc6da3580401c084489910bc769ab7;p=lttv.git diff --git a/ltt-usertrace/ltt/ltt-facility-custom-user_generic.h b/ltt-usertrace/ltt/ltt-facility-custom-user_generic.h index c819e3aa..9b56ff8f 100644 --- a/ltt-usertrace/ltt/ltt-facility-custom-user_generic.h +++ b/ltt-usertrace/ltt/ltt-facility-custom-user_generic.h @@ -8,6 +8,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + static int trace_user_generic_slow_printf( const char *fmt, ...) #ifndef LTT_TRACE @@ -16,11 +20,12 @@ static int trace_user_generic_slow_printf( #else { /* Guess we need no more than 100 bytes. */ - int n, size = 100; + int n, size = 104; char *p, *np; va_list ap; int ret; + size += ltt_align(size, sizeof(void*)); if ((p = malloc (size)) == NULL) return -1; @@ -31,7 +36,7 @@ static int trace_user_generic_slow_printf( va_end(ap); /* If that worked, trace the string. */ if (n > -1 && n < size) { - ret = trace_user_generic_slow_printf_param_buffer(p, n+1); + ret = trace_user_generic_slow_printf_param_buffer(p, n+1+ltt_align(n+1, sizeof(void*))); free(p); return ret; } @@ -40,6 +45,7 @@ static int trace_user_generic_slow_printf( size = n+1; /* precisely what is needed */ else /* glibc 2.0 */ size *= 2; /* twice the old size */ + size += ltt_align(size, sizeof(void*)); if ((np = realloc (p, size)) == NULL) { free(p); return -1; @@ -50,4 +56,8 @@ static int trace_user_generic_slow_printf( } #endif //LTT_TRACE +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + #endif //_LTT_FACILITY_CUSTOM_USER_GENERIC_H_