mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
proper handling of variable length arrays (SF#2002481 https://sourceforge.net/tracker2/?func=detail&aid=2002481&group_id=13478&atid=113478)
This commit is contained in:
@@ -48,9 +48,9 @@ all default: $(DEFAULT_BUILD)
|
|||||||
VERSION=\"1.2.1\"
|
VERSION=\"1.2.1\"
|
||||||
|
|
||||||
ifeq ($(OS),Darwin)
|
ifeq ($(OS),Darwin)
|
||||||
CONFIG_CFLAGS=-DHAVE_STDINT_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN -DWORDS_BIGENDIAN
|
CONFIG_CFLAGS=-DHAVE_STDINT_H -DHAVE_ICONV -DHAVE_CXX_VARARRAYS -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN -DWORDS_BIGENDIAN
|
||||||
else
|
else
|
||||||
CONFIG_CFLAGS=-DHAVE_STDINT_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
|
CONFIG_CFLAGS=-DHAVE_STDINT_H -DHAVE_ICONV -DHAVE_CXX_VARARRAYS -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OGG_INCLUDE_DIR=$(HOME)/local/include
|
OGG_INCLUDE_DIR=$(HOME)/local/include
|
||||||
|
|||||||
10
configure.in
10
configure.in
@@ -46,6 +46,16 @@ AC_CHECK_SIZEOF(void*,0)
|
|||||||
#@@@ new name is AC_CONFIG_HEADERS
|
#@@@ new name is AC_CONFIG_HEADERS
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
|
AC_LANG_PUSH(C++)
|
||||||
|
# c++ flavor first
|
||||||
|
AC_C_VARARRAYS
|
||||||
|
if test $ac_cv_c_vararrays = yes; then
|
||||||
|
AC_DEFINE([HAVE_CXX_VARARRAYS], 1, [Define to 1 if C++ supports variable-length arrays.])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP(C++)
|
||||||
|
# c flavor
|
||||||
|
AC_C_VARARRAYS
|
||||||
|
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
AC_CHECK_TYPES(socklen_t, [], [])
|
AC_CHECK_TYPES(socklen_t, [], [])
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
<li>
|
<li>
|
||||||
build system:
|
build system:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fix #includes for gcc 4.3 (<a href="https://sourceforge.net/tracker2/?func=detail&aid=1834168&group_id=13478&atid=113478">SF #1834168</a>).</li>
|
<li>Fixes for gcc 4.3 (<a href="https://sourceforge.net/tracker2/?func=detail&aid=1834168&group_id=13478&atid=113478">SF #1834168</a>, <a href="https://sourceforge.net/tracker2/?func=detail&aid=2002481&group_id=13478&atid=113478">SF #2002481</a>).</li>
|
||||||
<li>Fixes for windows builds (<a href="https://sourceforge.net/tracker2/?func=detail&aid=1676822&group_id=13478&atid=113478">SF #1676822</a>, <a href="https://sourceforge.net/tracker2/?func=detail&aid=1809863&group_id=13478&atid=113478">SF #1809863</a>, <a href="https://sourceforge.net/tracker2/?func=detail&aid=1756624&group_id=13478&atid=363478">SF #1756624</a>).</li>
|
<li>Fixes for windows builds (<a href="https://sourceforge.net/tracker2/?func=detail&aid=1676822&group_id=13478&atid=113478">SF #1676822</a>, <a href="https://sourceforge.net/tracker2/?func=detail&aid=1809863&group_id=13478&atid=113478">SF #1809863</a>, <a href="https://sourceforge.net/tracker2/?func=detail&aid=1756624&group_id=13478&atid=363478">SF #1756624</a>).</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -193,8 +193,8 @@ namespace FLAC {
|
|||||||
bool Stream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
|
bool Stream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
|
||||||
{
|
{
|
||||||
FLAC__ASSERT(is_valid());
|
FLAC__ASSERT(is_valid());
|
||||||
#if (defined _MSC_VER) || (defined __BORLANDC__) || (defined __SUNPRO_CC)
|
#ifndef HAVE_CXX_VARARRAYS
|
||||||
// MSVC++ can't handle:
|
// some compilers (MSVC++, Borland C, SunPro, some GCCs w/ -pedantic) can't handle:
|
||||||
// ::FLAC__StreamMetadata *m[num_blocks];
|
// ::FLAC__StreamMetadata *m[num_blocks];
|
||||||
// so we do this ugly workaround
|
// so we do this ugly workaround
|
||||||
::FLAC__StreamMetadata **m = new ::FLAC__StreamMetadata*[num_blocks];
|
::FLAC__StreamMetadata **m = new ::FLAC__StreamMetadata*[num_blocks];
|
||||||
@@ -205,7 +205,7 @@ namespace FLAC {
|
|||||||
// we can get away with the const_cast since we know the encoder will only correct the is_last flags
|
// we can get away with the const_cast since we know the encoder will only correct the is_last flags
|
||||||
m[i] = const_cast< ::FLAC__StreamMetadata*>((const ::FLAC__StreamMetadata*)metadata[i]);
|
m[i] = const_cast< ::FLAC__StreamMetadata*>((const ::FLAC__StreamMetadata*)metadata[i]);
|
||||||
}
|
}
|
||||||
#if (defined _MSC_VER) || (defined __BORLANDC__) || (defined __SUNPRO_CC)
|
#ifndef HAVE_CXX_VARARRAYS
|
||||||
// complete the hack
|
// complete the hack
|
||||||
const bool ok = (bool)::FLAC__stream_encoder_set_metadata(encoder_, m, num_blocks);
|
const bool ok = (bool)::FLAC__stream_encoder_set_metadata(encoder_, m, num_blocks);
|
||||||
delete [] m;
|
delete [] m;
|
||||||
|
|||||||
Reference in New Issue
Block a user