[cvs] / xvidcore / src / utils / mem_align.c Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/mem_align.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Fri Mar 8 02:44:58 2002 UTC revision 1.3, Thu Mar 21 00:28:33 2002 UTC
# Line 0  Line 1 
1    #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 - 1)&(~(uint32_t)(alignment - 1)));
22                            *(mem_ptr - 1) = (uint8_t)(mem_ptr - tmp);
23                            return (void *) mem_ptr;
24                    }
25            }
26    
27            return NULL;
28    
29    }
30    
31    void xvid_free(void *mem_ptr)
32    {
33    
34            uint8_t *real_ptr;
35    
36            real_ptr = (uint8_t*)mem_ptr;
37    
38            free(real_ptr - *(real_ptr -1));
39    
40    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

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