create directories branches, tags, trunk
[lttv.git] / ltt-usertrace / ltt / ltt-facility-custom-user_generic.h
index f3a77f77de910e7fdcc51443ba3a131765962df0..9b56ff8f3eacf7a3e816112df398bac35e8fcf37 100644 (file)
@@ -3,12 +3,16 @@
 
 #include <sys/types.h>
 #include <ltt/ltt-facility-id-user_generic.h>
-#include <ltt/ltt-generic.h>
+#include <ltt/ltt-usertrace.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 
-static inline int trace_user_generic_slow_printf(
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static int trace_user_generic_slow_printf(
                const char *fmt, ...)
 #ifndef LTT_TRACE
 {
@@ -16,11 +20,12 @@ static inline 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 inline 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 inline 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 inline int trace_user_generic_slow_printf(
 }
 #endif //LTT_TRACE
 
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
 #endif //_LTT_FACILITY_CUSTOM_USER_GENERIC_H_
This page took 0.023017 seconds and 4 git commands to generate.