# HG changeset patch # User reimar # Date 1165950237 0 # Node ID e54f539c9b5d011af62de6bf2efe128478daf80c # Parent 3ddf91e141a379e7ae78dd0615e52e4a1605274a Align image data pointer, this is also in preparation of an upcoming patch diff -r 3ddf91e141a3 -r e54f539c9b5d libvo/vo_x11.c --- a/libvo/vo_x11.c Tue Dec 12 18:43:10 2006 +0000 +++ b/libvo/vo_x11.c Tue Dec 12 19:03:57 2006 +0000 @@ -67,6 +67,8 @@ /* local data */ static unsigned char *ImageData; +//! original unaligned pointer for free +static unsigned char *ImageDataOrig; /* X11 related variables */ static XImage *myximage = NULL; @@ -231,7 +233,8 @@ #endif myximage = XCreateImage(mDisplay, vinfo.visual, depth, ZPixmap, 0, NULL, image_width, image_height, 8, 0); - myximage->data = malloc(myximage->bytes_per_line * image_height); + ImageDataOrig = malloc(myximage->bytes_per_line * image_height + 32); + myximage->data = ImageDataOrig + 16 - ((long)ImageDataOrig & 15); memset(myximage->data, 0, myximage->bytes_per_line * image_height); ImageData = myximage->data; #ifdef HAVE_SHM @@ -250,7 +253,9 @@ } else #endif { + myximage->data = ImageDataOrig; XDestroyImage(myximage); + ImageDataOrig = NULL; } myximage = NULL; ImageData = NULL;