diff options
author | dcommander <dcommander@3789f03b-4d11-0410-bbf8-ca57d06f2519> | 2011-01-05 23:35:53 +0000 |
---|---|---|
committer | dcommander <dcommander@3789f03b-4d11-0410-bbf8-ca57d06f2519> | 2011-01-05 23:35:53 +0000 |
commit | 312755c35e3f78a6680f417c2fabecb1bef86d4f (patch) | |
tree | 7547f4ba47ca939a368d5158dcdc5eff9d0d31e8 /trunk/turbojpegl.c | |
parent | 224af798a2c5ddcc7684a8b3173ad7f9612f43b4 (diff) |
Eliminate all of the __memalign() mess and just handle the alignment ourselves
git-svn-id: https://libjpeg-turbo.svn.sourceforge.net/svnroot/libjpeg-turbo@317 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'trunk/turbojpegl.c')
-rw-r--r-- | trunk/turbojpegl.c | 54 |
1 files changed, 18 insertions, 36 deletions
diff --git a/trunk/turbojpegl.c b/trunk/turbojpegl.c index 7e812fc..9dd6eb6 100644 --- a/trunk/turbojpegl.c +++ b/trunk/turbojpegl.c @@ -23,32 +23,6 @@ #include <jerror.h> #include <setjmp.h> #include "./turbojpeg.h" -#ifdef sun -#include <malloc.h> -#endif - -void *__memalign(size_t boundary, size_t size) -{ - #ifdef _WIN32 - return _aligned_malloc(size, boundary); - #else - #ifdef __APPLE__ - return malloc(size); - #else - #ifdef sun - return memalign(boundary, size); - #else - void *ptr=NULL; - posix_memalign(&ptr, boundary, size); - return ptr; - #endif - #endif - #endif -} - -#ifndef _WIN32 -#define _aligned_free(addr) free(addr) -#endif #ifndef min #define min(a,b) ((a)<(b)?(a):(b)) @@ -204,9 +178,9 @@ DLLEXPORT int DLLCALL tjCompress(tjhandle h, for(i=0; i<MAX_COMPONENTS; i++) { if(tmpbuf[i]!=NULL) free(tmpbuf[i]); - if(_tmpbuf[i]!=NULL) _aligned_free(_tmpbuf[i]); + if(_tmpbuf[i]!=NULL) free(_tmpbuf[i]); if(tmpbuf2[i]!=NULL) free(tmpbuf2[i]); - if(_tmpbuf2[i]!=NULL) _aligned_free(_tmpbuf2[i]); + if(_tmpbuf2[i]!=NULL) free(_tmpbuf2[i]); if(outbuf[i]!=NULL) free(outbuf[i]); } return -1; @@ -255,24 +229,32 @@ DLLEXPORT int DLLCALL tjCompress(tjhandle h, for(i=0; i<cinfo->num_components; i++) { compptr=&cinfo->comp_info[i]; - _tmpbuf[i]=(JSAMPLE *)__memalign(16, + _tmpbuf[i]=(JSAMPLE *)malloc( PAD((compptr->width_in_blocks*cinfo->max_h_samp_factor*DCTSIZE) - /compptr->h_samp_factor, 16) * cinfo->max_v_samp_factor); + /compptr->h_samp_factor, 16) * cinfo->max_v_samp_factor + 16); if(!_tmpbuf[i]) _throw("Memory allocation failure"); tmpbuf[i]=(JSAMPROW *)malloc(sizeof(JSAMPROW)*cinfo->max_v_samp_factor); if(!tmpbuf[i]) _throw("Memory allocation failure"); for(row=0; row<cinfo->max_v_samp_factor; row++) - tmpbuf[i][row]=&_tmpbuf[i][ + { + unsigned char *_tmpbuf_aligned= + (unsigned char *)PAD((size_t)_tmpbuf[i], 16); + tmpbuf[i][row]=&_tmpbuf_aligned[ PAD((compptr->width_in_blocks*cinfo->max_h_samp_factor*DCTSIZE) /compptr->h_samp_factor, 16) * row]; - _tmpbuf2[i]=(JSAMPLE *)__memalign(16, - PAD(compptr->width_in_blocks*DCTSIZE, 16) * compptr->v_samp_factor); + } + _tmpbuf2[i]=(JSAMPLE *)malloc(PAD(compptr->width_in_blocks*DCTSIZE, 16) + * compptr->v_samp_factor + 16); if(!_tmpbuf2[i]) _throw("Memory allocation failure"); tmpbuf2[i]=(JSAMPROW *)malloc(sizeof(JSAMPROW)*compptr->v_samp_factor); if(!tmpbuf2[i]) _throw("Memory allocation failure"); for(row=0; row<compptr->v_samp_factor; row++) - tmpbuf2[i][row]=&_tmpbuf2[i][ + { + unsigned char *_tmpbuf2_aligned= + (unsigned char *)PAD((size_t)_tmpbuf2[i], 16); + tmpbuf2[i][row]=&_tmpbuf2_aligned[ PAD(compptr->width_in_blocks*DCTSIZE, 16) * row]; + } cw[i]=pw*compptr->h_samp_factor/cinfo->max_h_samp_factor; ch[i]=ph*compptr->v_samp_factor/cinfo->max_v_samp_factor; outbuf[i]=(JSAMPROW *)malloc(sizeof(JSAMPROW)*ch[i]); @@ -323,9 +305,9 @@ DLLEXPORT int DLLCALL tjCompress(tjhandle h, for(i=0; i<MAX_COMPONENTS; i++) { if(tmpbuf[i]!=NULL) free(tmpbuf[i]); - if(_tmpbuf[i]!=NULL) _aligned_free(_tmpbuf[i]); + if(_tmpbuf[i]!=NULL) free(_tmpbuf[i]); if(tmpbuf2[i]!=NULL) free(tmpbuf2[i]); - if(_tmpbuf2[i]!=NULL) _aligned_free(_tmpbuf2[i]); + if(_tmpbuf2[i]!=NULL) free(_tmpbuf2[i]); if(outbuf[i]!=NULL) free(outbuf[i]); } return 0; |