66 } else if (ret < CX_PRINTF_SBO_SIZE) { |
66 } else if (ret < CX_PRINTF_SBO_SIZE) { |
67 va_end(ap2); |
67 va_end(ap2); |
68 return (int) wfc(buf, 1, ret, stream); |
68 return (int) wfc(buf, 1, ret, stream); |
69 } else { |
69 } else { |
70 int len = ret + 1; |
70 int len = ret + 1; |
71 char *newbuf = cxMalloc(cxDefaultAllocator, len); |
71 char *newbuf = cxMallocDefault(len); |
72 if (!newbuf) { // LCOV_EXCL_START |
72 if (!newbuf) { // LCOV_EXCL_START |
73 va_end(ap2); |
73 va_end(ap2); |
74 return -1; |
74 return -1; |
75 } // LCOV_EXCL_STOP |
75 } // LCOV_EXCL_STOP |
76 |
76 |
77 ret = vsnprintf(newbuf, len, fmt, ap2); |
77 ret = vsnprintf(newbuf, len, fmt, ap2); |
78 va_end(ap2); |
78 va_end(ap2); |
79 if (ret > 0) { |
79 if (ret > 0) { |
80 ret = (int) wfc(newbuf, 1, ret, stream); |
80 ret = (int) wfc(newbuf, 1, ret, stream); |
81 } |
81 } |
82 cxFree(cxDefaultAllocator, newbuf); |
82 cxFreeDefault(newbuf); |
83 } |
83 } |
84 return ret; |
84 return ret; |
85 } |
85 } |
86 |
86 |
87 cxmutstr cx_asprintf_a( |
87 cxmutstr cx_asprintf_a( |