[gtk+/native-layout] Try a little harder to survive close to OOM
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/native-layout] Try a little harder to survive close to OOM
- Date: Sun, 4 Apr 2010 02:16:30 +0000 (UTC)
commit 7673c45fecdeef09340cd913b335b294eed2e430
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jan 8 13:22:19 2010 -0500
Try a little harder to survive close to OOM
modules/engines/pixbuf/pixbuf-render.c | 48 ++++++++++++++++++++++++++++++--
1 files changed, 45 insertions(+), 3 deletions(-)
---
diff --git a/modules/engines/pixbuf/pixbuf-render.c b/modules/engines/pixbuf/pixbuf-render.c
index f312bac..d16e10a 100644
--- a/modules/engines/pixbuf/pixbuf-render.c
+++ b/modules/engines/pixbuf/pixbuf-render.c
@@ -45,7 +45,7 @@ bilinear_gradient (GdkPixbuf *src,
if (src_x == 0 || src_y == 0)
{
- g_warning ("invalid source position for bilinear gradient\n");
+ g_warning ("invalid source position for bilinear gradient");
return NULL;
}
@@ -56,6 +56,13 @@ bilinear_gradient (GdkPixbuf *src,
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
@@ -104,12 +111,19 @@ horizontal_gradient (GdkPixbuf *src,
if (src_x == 0)
{
- g_warning ("invalid source position for horizontal gradient\n");
+ g_warning ("invalid source position for horizontal gradient");
return NULL;
}
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
@@ -159,7 +173,7 @@ vertical_gradient (GdkPixbuf *src,
if (src_y == 0)
{
- g_warning ("invalid source position for vertical gradient\n");
+ g_warning ("invalid source position for vertical gradient");
return NULL;
}
@@ -168,6 +182,13 @@ vertical_gradient (GdkPixbuf *src,
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
@@ -209,6 +230,13 @@ replicate_single (GdkPixbuf *src,
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
@@ -247,6 +275,13 @@ replicate_rows (GdkPixbuf *src,
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
@@ -273,6 +308,13 @@ replicate_cols (GdkPixbuf *src,
result = gdk_pixbuf_new (GDK_COLORSPACE_RGB, n_channels == 4, 8,
width, height);
+
+ if (result == NULL)
+ {
+ g_warning ("failed to create a %dx%d pixbuf", width, height);
+ return NULL;
+ }
+
dest_rowstride = gdk_pixbuf_get_rowstride (result);
dest_pixels = gdk_pixbuf_get_pixels (result);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]