mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
evas: Add patch to fix segfaults
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
parent
df9e91e78c
commit
17cf353a6d
146
meta-efl/recipes-efl/efl/evas/revert.r83789.patch
Normal file
146
meta-efl/recipes-efl/efl/evas/revert.r83789.patch
Normal file
|
|
@ -0,0 +1,146 @@
|
||||||
|
From 134e338a40af875d5f7b221a7a8dbeefa7a48f55 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Willmann <d.willmann@samsung.com>
|
||||||
|
Date: Tue, 07 May 2013 09:49:53 +0000
|
||||||
|
Subject: Revert "Backport rev 83789"
|
||||||
|
|
||||||
|
This reverts commit 9a7a28b7582f516c67b23c4bb1a016cfc2ec5b31.
|
||||||
|
Was reverted long ago in efl as it doesn't actually work.
|
||||||
|
|
||||||
|
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
|
||||||
|
---
|
||||||
|
diff --git a/ChangeLog b/ChangeLog
|
||||||
|
index 54da44a..93d3834 100644
|
||||||
|
--- a/ChangeLog
|
||||||
|
+++ b/ChangeLog
|
||||||
|
@@ -1294,3 +1294,7 @@
|
||||||
|
|
||||||
|
* Evas text: Fixed line size calculation when using multiple
|
||||||
|
fonts.
|
||||||
|
+
|
||||||
|
+2013-05-16 Daniel Wilmann
|
||||||
|
+ * x11 backend: Revert "Fix memory usage spike when rotating with the
|
||||||
|
+ software_x11 engine". This doesn't actually work.
|
||||||
|
diff --git a/NEWS b/NEWS
|
||||||
|
index 6188963..c8002db 100644
|
||||||
|
--- a/NEWS
|
||||||
|
+++ b/NEWS
|
||||||
|
@@ -13,6 +13,7 @@ Fixes:
|
||||||
|
* Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case.
|
||||||
|
* Fix recursive proxy image rendering to just render black
|
||||||
|
* Evas text: Fixed line size calculation when using multiple fonts.
|
||||||
|
+ * Revert "Fix memory usage spike when rotating with the software_x11 engine."
|
||||||
|
|
||||||
|
Evas 1.7.6
|
||||||
|
* Fix SIGFPE in evas map update if image is 0.
|
||||||
|
diff --git a/src/modules/engines/software_x11/evas_xlib_outbuf.c b/src/modules/engines/software_x11/evas_xlib_outbuf.c
|
||||||
|
index 3cb1ea0..e337e99 100644
|
||||||
|
--- a/src/modules/engines/software_x11/evas_xlib_outbuf.c
|
||||||
|
+++ b/src/modules/engines/software_x11/evas_xlib_outbuf.c
|
||||||
|
@@ -362,7 +362,7 @@ evas_software_xlib_outbuf_setup_x(int w, int h, int rot, Outbuf_Depth depth,
|
||||||
|
RGBA_Image *
|
||||||
|
evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
|
||||||
|
{
|
||||||
|
- RGBA_Image *im = NULL;
|
||||||
|
+ RGBA_Image *im;
|
||||||
|
Outbuf_Region *obr;
|
||||||
|
int bpl = 0;
|
||||||
|
int use_shm = 1;
|
||||||
|
@@ -455,11 +455,6 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- /* FIXME: For the onebuf case we probably need to do the same thing we did below
|
||||||
|
- * (try to get an existing image before we allocate a new one). This code path
|
||||||
|
- * is not really used at the moment so no way to test (and that's why the change
|
||||||
|
- * is not implemented here as well.
|
||||||
|
- */
|
||||||
|
#ifdef EVAS_CSERVE2
|
||||||
|
if (evas_cserve2_use_get())
|
||||||
|
im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
|
||||||
|
@@ -613,73 +608,26 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- obr->xob = _find_xob(buf->priv.x11.xlib.disp,
|
||||||
|
- buf->priv.x11.xlib.vis,
|
||||||
|
- buf->priv.x11.xlib.depth,
|
||||||
|
- w, h,
|
||||||
|
- use_shm,
|
||||||
|
- NULL);
|
||||||
|
#ifdef EVAS_CSERVE2
|
||||||
|
if (evas_cserve2_use_get())
|
||||||
|
- {
|
||||||
|
- if (obr->xob)
|
||||||
|
- im = (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(),
|
||||||
|
- w, h,
|
||||||
|
- (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
|
||||||
|
- alpha, EVAS_COLORSPACE_ARGB8888);
|
||||||
|
-
|
||||||
|
- if (!im)
|
||||||
|
- {
|
||||||
|
- if (obr->xob) _unfind_xob(obr->xob, 0);
|
||||||
|
- im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
|
||||||
|
- if (!im)
|
||||||
|
- {
|
||||||
|
- free(obr);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- im->cache_entry.w = w;
|
||||||
|
- im->cache_entry.h = h;
|
||||||
|
- im->cache_entry.flags.alpha |= alpha ? 1 : 0;
|
||||||
|
- evas_cache2_image_surface_alloc(&im->cache_entry, w, h);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
+ im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
|
||||||
|
+ if (!im)
|
||||||
|
{
|
||||||
|
- if (obr->xob)
|
||||||
|
- im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
|
||||||
|
- w, h,
|
||||||
|
- (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
|
||||||
|
- alpha, EVAS_COLORSPACE_ARGB8888);
|
||||||
|
-
|
||||||
|
- if (!im)
|
||||||
|
- {
|
||||||
|
- if (obr->xob) _unfind_xob(obr->xob, 0);
|
||||||
|
- im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
|
||||||
|
- if (!im)
|
||||||
|
- {
|
||||||
|
- free(obr);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- im->cache_entry.w = w;
|
||||||
|
- im->cache_entry.h = h;
|
||||||
|
- im->cache_entry.flags.alpha |= alpha ? 1 : 0;
|
||||||
|
- evas_cache_image_surface_alloc(&im->cache_entry, w, h);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ free(obr);
|
||||||
|
+ return NULL;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- /* Need to update cache_entry w/h here because the render path expects them to be updated
|
||||||
|
- * to the new geometry. */
|
||||||
|
im->cache_entry.w = w;
|
||||||
|
im->cache_entry.h = h;
|
||||||
|
im->cache_entry.flags.alpha |= alpha ? 1 : 0;
|
||||||
|
-
|
||||||
|
+#ifdef EVAS_CSERVE2
|
||||||
|
+ if (evas_cserve2_use_get())
|
||||||
|
+ evas_cache2_image_surface_alloc(&im->cache_entry, w, h);
|
||||||
|
+ else
|
||||||
|
+#endif
|
||||||
|
+ evas_cache_image_surface_alloc(&im->cache_entry, w, h);
|
||||||
|
im->extended_info = obr;
|
||||||
|
if ((buf->rot == 0) || (buf->rot == 180))
|
||||||
|
{
|
||||||
|
--
|
||||||
|
cgit v0.9.1
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
require ${BPN}.inc
|
require ${BPN}.inc
|
||||||
|
|
||||||
PR = "${INC_PR}.1"
|
PR = "${INC_PR}.2"
|
||||||
|
|
||||||
SRC_URI = "\
|
SRC_URI = "\
|
||||||
${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \
|
${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \
|
||||||
|
file://revert.r83789.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "980abd6f645a38aa0a5d74f11a0e07f9"
|
SRC_URI[md5sum] = "980abd6f645a38aa0a5d74f11a0e07f9"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user