api: Don't use free directly with cr_asprintf. Fixes #87
This commit is contained in:
parent
9b88f244b6
commit
32fea80b7d
3 changed files with 9 additions and 3 deletions
|
@ -37,6 +37,7 @@ CR_BEGIN_C_API
|
||||||
CR_FORMAT(printf, 2, 3)
|
CR_FORMAT(printf, 2, 3)
|
||||||
CR_API int cr_asprintf(char **strp, const char *fmt, ...);
|
CR_API int cr_asprintf(char **strp, const char *fmt, ...);
|
||||||
CR_API int cr_vasprintf(char **strp, const char *fmt, va_list ap);
|
CR_API int cr_vasprintf(char **strp, const char *fmt, va_list ap);
|
||||||
|
CR_API void cr_asprintf_free(char *buf);
|
||||||
|
|
||||||
CR_END_C_API
|
CR_END_C_API
|
||||||
|
|
||||||
|
|
|
@ -97,10 +97,10 @@ CR_END_C_API
|
||||||
if (cr_fmt_msg__ && cr_fmt_msg__[1]) { \
|
if (cr_fmt_msg__ && cr_fmt_msg__[1]) { \
|
||||||
MsgVar = cr_fmt_msg__ + 1; \
|
MsgVar = cr_fmt_msg__ + 1; \
|
||||||
Shifted = 1; \
|
Shifted = 1; \
|
||||||
CR_STDN free(cr_def_msg__); \
|
cr_asprintf_free(cr_def_msg__); \
|
||||||
} else { \
|
} else { \
|
||||||
MsgVar = cr_def_msg__; \
|
MsgVar = cr_def_msg__; \
|
||||||
CR_STDN free(cr_fmt_msg__); \
|
cr_asprintf_free(cr_fmt_msg__); \
|
||||||
} \
|
} \
|
||||||
} while (0))
|
} while (0))
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ CR_END_C_API
|
||||||
cr_stat__.message = cr_msg__; \
|
cr_stat__.message = cr_msg__; \
|
||||||
criterion_send_assert(&cr_stat__); \
|
criterion_send_assert(&cr_stat__); \
|
||||||
\
|
\
|
||||||
CR_STDN free(cr_msg__ - cr_shifted__); \
|
cr_asprintf_free(cr_msg__ - cr_shifted__); \
|
||||||
\
|
\
|
||||||
if (!cr_passed__) \
|
if (!cr_passed__) \
|
||||||
Fail(); \
|
Fail(); \
|
||||||
|
|
|
@ -61,3 +61,8 @@ cleanup:
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cr_asprintf_free(char *buf)
|
||||||
|
{
|
||||||
|
free(buf);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue