diff options
author | Aaron Levinson <alevinsn@aracnet.com> | 2017-04-16 17:13:31 -0700 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2017-04-22 23:32:41 +0200 |
commit | 5b281b476b32c35527c0eea5f42161c4acad83f9 (patch) | |
tree | 97d055de380e3fe5fc9581ea0de94f0b90201f1d /libavutil/thread.h | |
parent | c037f2f1ba3a2d3114575323550f456e66695edf (diff) | |
download | ffmpeg-5b281b476b32c35527c0eea5f42161c4acad83f9.tar.gz |
libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL is greater than 1
Purpose: libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL
is greater than 1. This is only relevant when thread.h is included by
C++ files. In this case, the relevant code is only defined if
HAVE_PTHREADS is defined as 1. Use configure --assert-level=2 to do
so.
Note: Issue discovered as a result of Coverity build failure. Cause
of build failure pinpointed by Hendrik Leppkes.
Comments:
-- libavutil/thread.h: Altered ASSERT_PTHREAD_NORET definition such
that it uses av_make_error_string instead of av_err2str().
av_err2str() uses a "parenthesized type followed by an initializer
list", which is apparently not valid C++. This issue started
occurring because thread.h is now included by the DeckLink C++
files. The alteration does the equivalent of what av_err2str()
does, but instead declares the character buffer as a local
variable.
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavutil/thread.h')
-rw-r--r-- | libavutil/thread.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavutil/thread.h b/libavutil/thread.h index 6e5744736b..f108e20052 100644 --- a/libavutil/thread.h +++ b/libavutil/thread.h @@ -36,8 +36,11 @@ #define ASSERT_PTHREAD_NORET(func, ...) do { \ int ret = func(__VA_ARGS__); \ if (ret) { \ + char errbuf[AV_ERROR_MAX_STRING_SIZE] = ""; \ av_log(NULL, AV_LOG_FATAL, AV_STRINGIFY(func) \ - " failed with error: %s\n", av_err2str(AVERROR(ret))); \ + " failed with error: %s\n", \ + av_make_error_string(errbuf, AV_ERROR_MAX_STRING_SIZE, \ + AVERROR(ret))); \ abort(); \ } \ } while (0) |