Commit 4b2c4d84 authored by Daniel Egger's avatar Daniel Egger

Return when brush loading failed and react the right way. Fixes parts of



 Return when brush loading failed and react the right way. Fixes
 parts of bug #8150.
parent 9d051ffc
Wed Sep 27 00:46:31 CEST 2000 Daniel Egger <egger@suse.de>
Wed Sep 27 19:43:05 CEST 2000 Daniel Egger <egger@suse.de>
* gimpbrush.c:
* gimpbrush.h:
* gimpbrushgenerated.c: Return failed brush load try
in gimp_brush_load_brush and react accordingly instead
of crashing. Fixes part of bug #8150. I'd really
appreciate if some expert could have a look in the
pixmapbrush and brushpipe half of this problem.
Wed Sep 27 19:43:13 CEST 2000 Daniel Egger <egger@suse.de>
* app/paint_funcs.c: Implemented suggested solution for
SPARC alignment problem by Jon Hazen. Fixes bug #21269.
......
......@@ -126,9 +126,7 @@ gimp_brush_new (gchar *filename)
{
GimpBrush *brush = GIMP_BRUSH (gtk_type_new (gimp_brush_get_type ()));
gimp_brush_load (brush, filename);
return brush;
return (gimp_brush_load (brush, filename)? brush : NULL);
}
static GimpBrush *
......@@ -193,7 +191,7 @@ gimp_brush_set_spacing (GimpBrush *brush,
brush->spacing = spacing;
}
void
gboolean
gimp_brush_load (GimpBrush *brush,
gchar *filename)
{
......@@ -205,17 +203,20 @@ gimp_brush_load (GimpBrush *brush,
if (! (fp = fopen (filename, "rb")))
{
gimp_object_destroy (brush);
return;
return FALSE;
}
gimp_brush_load_brush (brush, fp, filename);
if (!gimp_brush_load_brush (brush, fp, filename))
return FALSE;
/* Clean up */
fclose (fp);
/* Swap the brush to disk (if we're being stingy with memory) */
if (stingy_memory_use)
temp_buf_swap (brush->mask);
return TRUE;
}
gint
......
......@@ -126,9 +126,7 @@ gimp_brush_new (gchar *filename)
{
GimpBrush *brush = GIMP_BRUSH (gtk_type_new (gimp_brush_get_type ()));
gimp_brush_load (brush, filename);
return brush;
return (gimp_brush_load (brush, filename)? brush : NULL);
}
static GimpBrush *
......@@ -193,7 +191,7 @@ gimp_brush_set_spacing (GimpBrush *brush,
brush->spacing = spacing;
}
void
gboolean
gimp_brush_load (GimpBrush *brush,
gchar *filename)
{
......@@ -205,17 +203,20 @@ gimp_brush_load (GimpBrush *brush,
if (! (fp = fopen (filename, "rb")))
{
gimp_object_destroy (brush);
return;
return FALSE;
}
gimp_brush_load_brush (brush, fp, filename);
if (!gimp_brush_load_brush (brush, fp, filename))
return FALSE;
/* Clean up */
fclose (fp);
/* Swap the brush to disk (if we're being stingy with memory) */
if (stingy_memory_use)
temp_buf_swap (brush->mask);
return TRUE;
}
gint
......
......@@ -55,7 +55,7 @@ struct _GimpBrushClass
GtkType gimp_brush_get_type (void);
GimpBrush * gimp_brush_new (gchar *filename);
void gimp_brush_load (GimpBrush *brush,
gboolean gimp_brush_load (GimpBrush *brush,
gchar *filename);
gint gimp_brush_load_brush (GimpBrush *brush,
FILE *fp,
......
......@@ -134,7 +134,10 @@ gimp_brush_generated_load (const gchar *file_name)
/* make sure the file we are reading is the right type */
fgets (string, 255, fp);
g_return_val_if_fail (strncmp (string, "GIMP-VBR", 8) == 0, NULL);
if (strncmp (string, "GIMP-VBR", 8) != 0)
return NULL;
/* make sure we are reading a compatible version */
fgets (string, 255, fp);
sscanf (string, "%f", &version);
......
......@@ -134,7 +134,10 @@ gimp_brush_generated_load (const gchar *file_name)
/* make sure the file we are reading is the right type */
fgets (string, 255, fp);
g_return_val_if_fail (strncmp (string, "GIMP-VBR", 8) == 0, NULL);
if (strncmp (string, "GIMP-VBR", 8) != 0)
return NULL;
/* make sure we are reading a compatible version */
fgets (string, 255, fp);
sscanf (string, "%f", &version);
......
......@@ -134,7 +134,10 @@ gimp_brush_generated_load (const gchar *file_name)
/* make sure the file we are reading is the right type */
fgets (string, 255, fp);
g_return_val_if_fail (strncmp (string, "GIMP-VBR", 8) == 0, NULL);
if (strncmp (string, "GIMP-VBR", 8) != 0)
return NULL;
/* make sure we are reading a compatible version */
fgets (string, 255, fp);
sscanf (string, "%f", &version);
......
......@@ -126,9 +126,7 @@ gimp_brush_new (gchar *filename)
{
GimpBrush *brush = GIMP_BRUSH (gtk_type_new (gimp_brush_get_type ()));
gimp_brush_load (brush, filename);
return brush;
return (gimp_brush_load (brush, filename)? brush : NULL);
}
static GimpBrush *
......@@ -193,7 +191,7 @@ gimp_brush_set_spacing (GimpBrush *brush,
brush->spacing = spacing;
}
void
gboolean
gimp_brush_load (GimpBrush *brush,
gchar *filename)
{
......@@ -205,17 +203,20 @@ gimp_brush_load (GimpBrush *brush,
if (! (fp = fopen (filename, "rb")))
{
gimp_object_destroy (brush);
return;
return FALSE;
}
gimp_brush_load_brush (brush, fp, filename);
if (!gimp_brush_load_brush (brush, fp, filename))
return FALSE;
/* Clean up */
fclose (fp);
/* Swap the brush to disk (if we're being stingy with memory) */
if (stingy_memory_use)
temp_buf_swap (brush->mask);
return TRUE;
}
gint
......
......@@ -55,7 +55,7 @@ struct _GimpBrushClass
GtkType gimp_brush_get_type (void);
GimpBrush * gimp_brush_new (gchar *filename);
void gimp_brush_load (GimpBrush *brush,
gboolean gimp_brush_load (GimpBrush *brush,
gchar *filename);
gint gimp_brush_load_brush (GimpBrush *brush,
FILE *fp,
......
......@@ -134,7 +134,10 @@ gimp_brush_generated_load (const gchar *file_name)
/* make sure the file we are reading is the right type */
fgets (string, 255, fp);
g_return_val_if_fail (strncmp (string, "GIMP-VBR", 8) == 0, NULL);
if (strncmp (string, "GIMP-VBR", 8) != 0)
return NULL;
/* make sure we are reading a compatible version */
fgets (string, 255, fp);
sscanf (string, "%f", &version);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment