fix segv added in

SVN revision: 27499
This commit is contained in:
Carsten Haitzler 2006-12-17 16:46:30 +00:00
parent f83220c857
commit 7c357ef3fe
2 changed files with 14 additions and 8 deletions

View File

@ -464,6 +464,7 @@ eng_image_alpha_get(void *data, void *image)
Evas_GL_Image *im; Evas_GL_Image *im;
re = (Render_Engine *)data; re = (Render_Engine *)data;
if (!image) return 1;
im = image; im = image;
/* FIXME: can move to gl_common */ /* FIXME: can move to gl_common */
switch (im->cs.space) switch (im->cs.space)
@ -483,6 +484,7 @@ eng_image_colorspace_get(void *data, void *image)
Evas_GL_Image *im; Evas_GL_Image *im;
re = (Render_Engine *)data; re = (Render_Engine *)data;
if (!image) return EVAS_COLORSPACE_ARGB8888;
im = image; im = image;
return im->cs.space; return im->cs.space;
} }
@ -754,7 +756,7 @@ static void *
eng_image_data_put(void *data, void *image, DATA32 *image_data) eng_image_data_put(void *data, void *image, DATA32 *image_data)
{ {
Render_Engine *re; Render_Engine *re;
Evas_GL_Image *im; Evas_GL_Image *im, *im2;
re = (Render_Engine *)data; re = (Render_Engine *)data;
im = image; im = image;
@ -768,10 +770,11 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
w = im->im->image->w; w = im->im->image->w;
h = im->im->image->h; h = im->im->image->h;
im2 = eng_image_new_from_data(data, w, h, image_data,
eng_image_alpha_get(data, image),
eng_image_colorspace_get(data, image));
evas_gl_common_image_free(im); evas_gl_common_image_free(im);
return eng_image_new_from_data(data, w, h, image_data, im = im2;
eng_image_alpha_get(data, image),
eng_image_colorspace_get(data, image));
} }
break; break;
case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P601_PL:

View File

@ -334,6 +334,7 @@ eng_image_alpha_get(void *data, void *image)
{ {
RGBA_Image *im; RGBA_Image *im;
if (!image) return 1;
im = image; im = image;
switch (im->cs.space) switch (im->cs.space)
{ {
@ -350,6 +351,7 @@ eng_image_colorspace_get(void *data, void *image)
{ {
RGBA_Image *im; RGBA_Image *im;
if (!image) return EVAS_COLORSPACE_ARGB8888;
im = image; im = image;
return im->cs.space; return im->cs.space;
} }
@ -646,7 +648,7 @@ eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data)
static void * static void *
eng_image_data_put(void *data, void *image, DATA32 *image_data) eng_image_data_put(void *data, void *image, DATA32 *image_data)
{ {
RGBA_Image *im; RGBA_Image *im, *im2;
im = image; im = image;
switch (im->cs.space) switch (im->cs.space)
@ -658,10 +660,11 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
w = im->image->w; w = im->image->w;
h = im->image->h; h = im->image->h;
im2 = eng_image_new_from_data(data, w, h, image_data,
eng_image_alpha_get(data, image),
eng_image_colorspace_get(data, image));
evas_common_image_unref(im); evas_common_image_unref(im);
return eng_image_new_from_data(data, w, h, image_data, im = im2;
eng_image_alpha_get(data, image),
eng_image_colorspace_get(data, image));
} }
break; break;
case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P601_PL: