Module: wine Branch: master Commit: 1dab61125ee0ffaac14c142828ec06310050fa89 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1dab61125ee0ffaac14c142828...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Feb 16 20:01:07 2012 +0300
msxml3: Use static buffer when tracing libxml2 error messages.
---
dlls/msxml3/main.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/dlls/msxml3/main.c b/dlls/msxml3/main.c index 464ef90..e01d331 100644 --- a/dlls/msxml3/main.c +++ b/dlls/msxml3/main.c @@ -62,9 +62,11 @@ HINSTANCE MSXML_hInstance = NULL;
void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap) { - char* buf = NULL; - int len = 32, needed; - enum __wine_debug_class dbcl = __WINE_DBCL_ERR; + static const int max_size = 200; + enum __wine_debug_class dbcl; + char buff[max_size]; + int len; + switch (lvl) { case XML_ERR_NONE: @@ -74,25 +76,14 @@ void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, dbcl = __WINE_DBCL_WARN; break; default: + dbcl = __WINE_DBCL_ERR; break; }
- do - { - heap_free(buf); - buf = heap_alloc(len); - needed = vsnprintf(buf, len, msg, ap); - if (needed == -1) - len *= 2; - else if (needed >= len) - len = needed + 1; - else - needed = 0; - } - while (needed); + len = vsnprintf(buff, max_size, msg, ap); + if (len == -1 || len >= max_size) buff[max_size-1] = 0;
- wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "%s", buf); - heap_free(buf); + wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "%s", buff); }
void wineXmlCallbackError(char const* caller, xmlErrorPtr err)