mirror of https://github.com/GNOME/gimp.git
libgimp/gimpdrawable.c libgimp/gimppixelfetcher.c libgimp/gimpprogress.c
2007-05-22 Sven Neumann <sven@gimp.org> * libgimp/gimpdrawable.c * libgimp/gimppixelfetcher.c * libgimp/gimpprogress.c * libgimp/gimppixelrgn.c * libgimp/gimpregioniterator.c: allocate structs using GSlice. svn path=/trunk/; revision=22567
This commit is contained in:
parent
a8c9def029
commit
ba25863e49
|
@ -1,3 +1,11 @@
|
|||
2007-05-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* libgimp/gimpdrawable.c
|
||||
* libgimp/gimppixelfetcher.c
|
||||
* libgimp/gimpprogress.c
|
||||
* libgimp/gimppixelrgn.c
|
||||
* libgimp/gimpregioniterator.c: allocate structs using GSlice.
|
||||
|
||||
2007-05-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* libgimp/gimpbrushmenu.c
|
||||
|
|
|
@ -62,7 +62,7 @@ gimp_drawable_get (gint32 drawable_ID)
|
|||
|
||||
g_return_val_if_fail (width > 0 && height > 0 && bpp > 0, NULL);
|
||||
|
||||
drawable = g_new0 (GimpDrawable, 1);
|
||||
drawable = g_slice_new0 (GimpDrawable);
|
||||
|
||||
drawable->drawable_id = drawable_ID;
|
||||
drawable->width = width;
|
||||
|
@ -93,10 +93,11 @@ gimp_drawable_detach (GimpDrawable *drawable)
|
|||
|
||||
if (drawable->tiles)
|
||||
g_free (drawable->tiles);
|
||||
|
||||
if (drawable->shadow_tiles)
|
||||
g_free (drawable->shadow_tiles);
|
||||
|
||||
g_free (drawable);
|
||||
g_slice_free (GimpDrawable, drawable);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,12 +3,6 @@
|
|||
*
|
||||
* gimppixelfetcher.c
|
||||
*
|
||||
* FIXME: fix the following comment:
|
||||
* Contains all kinds of miscellaneous routines factored out from different
|
||||
* plug-ins. They stay here until their API has crystalized a bit and we can
|
||||
* put them into the file where they belong (Maurits Rijk
|
||||
* <lpeek.mrijk@consunet.nl> if you want to blame someone for this mess)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
|
@ -83,7 +77,7 @@ gimp_pixel_fetcher_new (GimpDrawable *drawable,
|
|||
|
||||
g_return_val_if_fail (width > 0 && height > 0 && bpp > 0, NULL);
|
||||
|
||||
pf = g_new0 (GimpPixelFetcher, 1);
|
||||
pf = g_slice_new0 (GimpPixelFetcher);
|
||||
|
||||
gimp_drawable_mask_bounds (drawable->drawable_id,
|
||||
&pf->sel_x1, &pf->sel_y1,
|
||||
|
@ -123,7 +117,7 @@ gimp_pixel_fetcher_destroy (GimpPixelFetcher *pf)
|
|||
if (pf->tile)
|
||||
gimp_tile_unref (pf->tile, pf->tile_dirty);
|
||||
|
||||
g_free (pf);
|
||||
g_slice_free (GimpPixelFetcher, pf);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -671,17 +671,14 @@ gimp_pixel_rgns_register2 (gint nrgns,
|
|||
g_return_val_if_fail (nrgns > 0, NULL);
|
||||
g_return_val_if_fail (prs != NULL, NULL);
|
||||
|
||||
pri = g_new0 (GimpPixelRgnIterator, 1);
|
||||
pri = g_slice_new0 (GimpPixelRgnIterator);
|
||||
|
||||
found = FALSE;
|
||||
while (nrgns --)
|
||||
{
|
||||
GimpPixelRgnHolder *prh;
|
||||
GimpPixelRgn *pr;
|
||||
GimpPixelRgn *pr = prs[nrgns];
|
||||
GimpPixelRgnHolder *prh = g_slice_new0 (GimpPixelRgnHolder);
|
||||
|
||||
pr = prs[nrgns];
|
||||
|
||||
prh = g_new0 (GimpPixelRgnHolder, 1);
|
||||
prh->pr = pr;
|
||||
|
||||
if (pr != NULL)
|
||||
|
@ -724,13 +721,12 @@ gimp_pixel_rgns_register (gint nrgns,
|
|||
...)
|
||||
{
|
||||
GimpPixelRgn **prs;
|
||||
gpointer pri;
|
||||
gint n;
|
||||
va_list ap;
|
||||
|
||||
g_return_val_if_fail (nrgns > 0, NULL);
|
||||
|
||||
prs = g_new (GimpPixelRgn *, nrgns);
|
||||
prs = g_newa (GimpPixelRgn *, nrgns);
|
||||
|
||||
va_start (ap, nrgns);
|
||||
|
||||
|
@ -739,11 +735,7 @@ gimp_pixel_rgns_register (gint nrgns,
|
|||
|
||||
va_end (ap);
|
||||
|
||||
pri = gimp_pixel_rgns_register2 (nrgns, prs);
|
||||
|
||||
g_free (prs);
|
||||
|
||||
return pri;
|
||||
return gimp_pixel_rgns_register2 (nrgns, prs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -905,10 +897,10 @@ gimp_pixel_rgns_configure (GimpPixelRgnIterator *pri)
|
|||
{
|
||||
/* free the pixel regions list */
|
||||
for (list = pri->pixel_regions; list; list = list->next)
|
||||
g_free (list->data);
|
||||
g_slice_free (GimpPixelRgnHolder, list->data);
|
||||
|
||||
g_slist_free (pri->pixel_regions);
|
||||
g_free (pri);
|
||||
g_slice_free (GimpPixelRgnIterator, pri);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -30,23 +30,23 @@
|
|||
#include "gimp.h"
|
||||
|
||||
|
||||
typedef struct _GimpProgressData GimpProgressData;
|
||||
|
||||
struct _GimpProgressData
|
||||
typedef struct
|
||||
{
|
||||
gchar *progress_callback;
|
||||
GimpProgressVtable vtable;
|
||||
gpointer data;
|
||||
};
|
||||
} GimpProgressData;
|
||||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static void gimp_temp_progress_run (const gchar *name,
|
||||
gint nparams,
|
||||
const GimpParam *param,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
static void gimp_progress_data_free (GimpProgressData *data);
|
||||
|
||||
static void gimp_temp_progress_run (const gchar *name,
|
||||
gint nparams,
|
||||
const GimpParam *param,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
|
||||
|
||||
/* private variables */
|
||||
|
@ -153,10 +153,14 @@ gimp_progress_install_vtable (const GimpProgressVtable *vtable,
|
|||
|
||||
/* Now add to hash table so we can find it again */
|
||||
if (! gimp_progress_ht)
|
||||
gimp_progress_ht = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
g_free, g_free);
|
||||
{
|
||||
gimp_progress_ht =
|
||||
g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
g_free,
|
||||
(GDestroyNotify) gimp_progress_data_free);
|
||||
}
|
||||
|
||||
progress_data = g_new0 (GimpProgressData, 1);
|
||||
progress_data = g_slice_new0 (GimpProgressData);
|
||||
|
||||
progress_data->progress_callback = progress_callback;
|
||||
progress_data->vtable.start = vtable->start;
|
||||
|
@ -365,6 +369,12 @@ gimp_progress_update (gdouble percentage)
|
|||
|
||||
/* private functions */
|
||||
|
||||
static void
|
||||
gimp_progress_data_free (GimpProgressData *data)
|
||||
{
|
||||
g_slice_free (GimpProgressData, data);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_temp_progress_run (const gchar *name,
|
||||
gint nparams,
|
||||
|
|
|
@ -3,12 +3,6 @@
|
|||
*
|
||||
* gimpregioniterator.c
|
||||
*
|
||||
* FIXME: fix the following comment:
|
||||
* Contains all kinds of miscellaneous routines factored out from different
|
||||
* plug-ins. They stay here until their API has crystalized a bit and we can
|
||||
* put them into the file where they belong (Maurits Rijk
|
||||
* <lpeek.mrijk@consunet.nl> if you want to blame someone for this mess)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
|
@ -38,7 +32,10 @@
|
|||
struct _GimpRgnIterator
|
||||
{
|
||||
GimpDrawable *drawable;
|
||||
gint x1, y1, x2, y2;
|
||||
gint x1;
|
||||
gint y1;
|
||||
gint x2;
|
||||
gint y2;
|
||||
};
|
||||
|
||||
|
||||
|
@ -64,7 +61,8 @@ static void gimp_rgn_render_region (const GimpPixelRgn *srcPR,
|
|||
* @unused: ignored
|
||||
*
|
||||
* Creates a new #GimpRgnIterator for @drawable. The #GimpRunMode
|
||||
* parameter is ignored.
|
||||
* parameter is ignored. Use gimp_rgn_iterator_free() to free thsi
|
||||
* iterator.
|
||||
*
|
||||
* Return value: a newly allocated #GimpRgnIterator.
|
||||
**/
|
||||
|
@ -72,7 +70,11 @@ GimpRgnIterator *
|
|||
gimp_rgn_iterator_new (GimpDrawable *drawable,
|
||||
GimpRunMode unused)
|
||||
{
|
||||
GimpRgnIterator *iter = g_new (GimpRgnIterator, 1);
|
||||
GimpRgnIterator *iter;
|
||||
|
||||
g_return_val_if_fail (drawable != NULL, NULL);
|
||||
|
||||
iter = g_slice_new (GimpRgnIterator);
|
||||
|
||||
iter->drawable = drawable;
|
||||
|
||||
|
@ -92,7 +94,9 @@ gimp_rgn_iterator_new (GimpDrawable *drawable,
|
|||
void
|
||||
gimp_rgn_iterator_free (GimpRgnIterator *iter)
|
||||
{
|
||||
g_free (iter);
|
||||
g_return_if_fail (iter != NULL);
|
||||
|
||||
g_slice_free (GimpRgnIterator, iter);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -102,6 +106,8 @@ gimp_rgn_iterator_src (GimpRgnIterator *iter,
|
|||
{
|
||||
GimpPixelRgn srcPR;
|
||||
|
||||
g_return_if_fail (iter != NULL);
|
||||
|
||||
gimp_pixel_rgn_init (&srcPR, iter->drawable,
|
||||
iter->x1, iter->y1,
|
||||
iter->x2 - iter->x1, iter->y2 - iter->y1,
|
||||
|
@ -121,6 +127,8 @@ gimp_rgn_iterator_src_dest (GimpRgnIterator *iter,
|
|||
gint total_area;
|
||||
gint area_so_far;
|
||||
|
||||
g_return_if_fail (iter != NULL);
|
||||
|
||||
x1 = iter->x1;
|
||||
y1 = iter->y1;
|
||||
x2 = iter->x2;
|
||||
|
@ -178,6 +186,8 @@ gimp_rgn_iterator_dest (GimpRgnIterator *iter,
|
|||
{
|
||||
GimpPixelRgn destPR;
|
||||
|
||||
g_return_if_fail (iter != NULL);
|
||||
|
||||
gimp_pixel_rgn_init (&destPR, iter->drawable,
|
||||
iter->x1, iter->y1,
|
||||
iter->x2 - iter->x1, iter->y2 - iter->y1,
|
||||
|
@ -206,6 +216,8 @@ gimp_rgn_iterate1 (GimpDrawable *drawable,
|
|||
gint area_so_far;
|
||||
gint progress_skip;
|
||||
|
||||
g_return_if_fail (drawable != NULL);
|
||||
|
||||
gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2);
|
||||
|
||||
total_area = (x2 - x1) * (y2 - y1);
|
||||
|
@ -260,6 +272,8 @@ gimp_rgn_iterate2 (GimpDrawable *drawable,
|
|||
gint area_so_far;
|
||||
gint progress_skip;
|
||||
|
||||
g_return_if_fail (drawable != NULL);
|
||||
|
||||
gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2);
|
||||
|
||||
total_area = (x2 - x1) * (y2 - y1);
|
||||
|
|
Loading…
Reference in New Issue