@@ -64,28 +64,18 @@ static const char err_msg[] = "Could not trace into fd given by "
6464
6565void trace_printf (const char * fmt , ...)
6666{
67- struct strbuf buf ;
67+ struct strbuf buf = STRBUF_INIT ;
6868 va_list ap ;
69- int fd , len , need_close = 0 ;
69+ int fd , need_close = 0 ;
7070
7171 fd = get_trace_fd (& need_close );
7272 if (!fd )
7373 return ;
7474
7575 set_try_to_free_routine (NULL ); /* is never reset */
76- strbuf_init (& buf , 64 );
7776 va_start (ap , fmt );
78- len = vsnprintf ( buf . buf , strbuf_avail ( & buf ) , fmt , ap );
77+ strbuf_vaddf ( & buf , fmt , ap );
7978 va_end (ap );
80- if (len >= strbuf_avail (& buf )) {
81- strbuf_grow (& buf , len - strbuf_avail (& buf ) + 128 );
82- va_start (ap , fmt );
83- len = vsnprintf (buf .buf , strbuf_avail (& buf ), fmt , ap );
84- va_end (ap );
85- if (len >= strbuf_avail (& buf ))
86- die ("broken vsnprintf" );
87- }
88- strbuf_setlen (& buf , len );
8979
9080 write_or_whine_pipe (fd , buf .buf , buf .len , err_msg );
9181 strbuf_release (& buf );
@@ -96,28 +86,18 @@ void trace_printf(const char *fmt, ...)
9686
9787void trace_argv_printf (const char * * argv , const char * fmt , ...)
9888{
99- struct strbuf buf ;
89+ struct strbuf buf = STRBUF_INIT ;
10090 va_list ap ;
101- int fd , len , need_close = 0 ;
91+ int fd , need_close = 0 ;
10292
10393 fd = get_trace_fd (& need_close );
10494 if (!fd )
10595 return ;
10696
10797 set_try_to_free_routine (NULL ); /* is never reset */
108- strbuf_init (& buf , 64 );
10998 va_start (ap , fmt );
110- len = vsnprintf ( buf . buf , strbuf_avail ( & buf ) , fmt , ap );
99+ strbuf_vaddf ( & buf , fmt , ap );
111100 va_end (ap );
112- if (len >= strbuf_avail (& buf )) {
113- strbuf_grow (& buf , len - strbuf_avail (& buf ) + 128 );
114- va_start (ap , fmt );
115- len = vsnprintf (buf .buf , strbuf_avail (& buf ), fmt , ap );
116- va_end (ap );
117- if (len >= strbuf_avail (& buf ))
118- die ("broken vsnprintf" );
119- }
120- strbuf_setlen (& buf , len );
121101
122102 sq_quote_argv (& buf , argv , 0 );
123103 strbuf_addch (& buf , '\n' );
0 commit comments