Changeset 08606c7159d799fa7f64452f89d777a8a3710738

Show
Ignore:
Timestamp:
31/01/08 19:02:38 (10 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1201802558 +0000
git-parent:

[88e2bbbaaa6d2f0b3e2e23e4392607e05abf13f5]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1201802558 +0000
Message:
  • Use posix_memalign when available.
  • Use inlines for expansion safety.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/video_output/vout_pictures.h

    rbb352cd r08606c7  
    110110 * *pp_orig is the pointer that has to be freed afterwards. 
    111111 */ 
    112 #if 0 
    113 #ifdef HAVE_POSIX_MEMALIGN 
    114 #   define vlc_memalign(align,size,pp_orig) \ 
    115     ( !posix_memalign( pp_orig, align, size ) ? *(pp_orig) : NULL ) 
    116 #endif 
    117 #endif 
    118 #ifdef HAVE_MEMALIGN 
    119     /* Some systems have memalign() but no declaration for it */ 
    120     void * memalign( size_t align, size_t size ); 
     112#if defined (HAVE_POSIX_MEMALIGN) 
     113static inline 
     114void *vlc_memalign (size_t align, size_t size, void **pp) 
     115
     116    return posix_memalign (pp, align, size) ? NULL : *pp; 
     117
     118#elif defined (HAVE_MEMALIGN) 
     119static inline 
     120void *vlc_memalign (size_t align, size_t size, void **pp) 
     121
     122    return *pp = memalign (align, size); 
     123
     124#else /* We don't have any choice but to align manually */ 
     125static inline 
     126void *vlc_memalign (size_t align, size_t size, void **pp) 
     127
     128    unsigned char *ptr; 
    121129 
    122 #   define vlc_memalign(pp_orig,align,size) \ 
    123     ( *(pp_orig) = memalign( align, size ) ) 
     130    if (align < 1) 
     131        return NULL; 
    124132 
    125 #else /* We don't have any choice but to align manually */ 
    126 #   define vlc_memalign(pp_orig,align,size) \ 
    127     (( *(pp_orig) = malloc( size + align - 1 )) \ 
    128         ? (void *)( (((unsigned long)*(pp_orig)) + (unsigned long)(align-1) ) \ 
    129                        & (~(unsigned long)(align-1)) ) \ 
    130         : NULL ) 
     133    align--; 
     134    ptr = malloc (size + --align); 
     135    if (ptr == NULL) 
     136        return NULL; 
    131137 
     138    *pp = ptr; 
     139    ptr += align; 
     140    return (void *)(((uintptr_t)ptr) & ~align); 
     141} 
    132142#endif 
    133143