[svn] / branches / dev-api-4 / xvidcore / src / utils / mem_align.c Repository:
ViewVC logotype

Annotation of /branches/dev-api-4/xvidcore/src/utils/mem_align.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 41 - (view) (download)
Original Path: trunk/xvidcore/src/utils/mem_align.c

1 : Isibaar 41 #include <stdlib.h>
2 :     #include <stdio.h>
3 :     #include "mem_align.h"
4 :    
5 :     void *xvid_malloc(size_t size, uint8_t alignment)
6 :     {
7 :     uint8_t *mem_ptr;
8 :    
9 :     if(alignment == 0)
10 :     {
11 :     if((mem_ptr = (uint8_t *) malloc(size + 1)) != NULL) {
12 :     *mem_ptr = 0;
13 :     return (void *) mem_ptr++;
14 :     }
15 :     }
16 :     else
17 :     {
18 :     uint8_t *tmp;
19 :    
20 :     if((tmp = (uint8_t *) malloc(size + alignment)) != NULL) {
21 :     mem_ptr = (uint8_t *) (((uint32_t) tmp / alignment) * alignment + alignment);
22 :     *(mem_ptr - 1) = (alignment - 1) - ((uint32_t) tmp % alignment);
23 :     return (void *) mem_ptr;
24 :     }
25 :     }
26 :    
27 :     return NULL;
28 :     }
29 :    
30 :     void xvid_free(void *mem_ptr)
31 :     {
32 :     uint8_t *tmp;
33 :    
34 :     tmp = (uint8_t *) mem_ptr - 1;
35 :     mem_ptr = tmp - *tmp;
36 :    
37 :     free(mem_ptr);
38 :     }

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4