From: sr55 Date: Thu, 4 Dec 2008 20:57:31 +0000 (+0000) Subject: libhb: X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=3374828550b14a8542234c72c78b0de96f79e0a5;p=handbrake-jp%2Fhandbrake-jp-git.git libhb: The malloc() function in cygwin doesn't return 16-byte aligned memory which causes it to randomly crash. Replaced with memalign() for the cygwin platform only. git-svn-id: svn://localhost/HandBrake/trunk@2006 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- diff --git a/libhb/decavcodec.c b/libhb/decavcodec.c index e335ef9f..7f68100f 100644 --- a/libhb/decavcodec.c +++ b/libhb/decavcodec.c @@ -1065,7 +1065,14 @@ static void decodeAudio( hb_work_private_t *pv, uint8_t *data, int size ) // the buffer is allocated on our stack. Rather than doing // complicated, machine dependent alignment here we use the // fact that malloc returns an aligned pointer on most architectures. - pv->buffer = malloc( AVCODEC_MAX_AUDIO_FRAME_SIZE ); + + #ifdef SYS_CYGWIN + // Cygwin's malloc doesn't appear to return 16-byte aligned memory so use memalign instead. + pv->buffer = memalign(16, AVCODEC_MAX_AUDIO_FRAME_SIZE); + #else + pv->buffer = malloc( AVCODEC_MAX_AUDIO_FRAME_SIZE ); + #endif + buffer = pv->buffer; } int out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;