Commit dfe7a587 authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist
Browse files

Plug memory leak. The bitmap and mask GdkBitmaps were leaked each time.

2000-08-25  Tor Lillqvist  <tml@iki.fi>

	* app/cursorutil.c (gimp_change_win_cursor): Plug memory leak. The
	bitmap and mask GdkBitmaps were leaked each time.

	* plug-ins/makefile.mingw.in: Really add it this time.
parent c10f023c
2000-08-25 Tor Lillqvist <tml@iki.fi>
* app/cursorutil.c (gimp_change_win_cursor): Plug memory leak. The
bitmap and mask GdkBitmaps were leaked each time.
* plug-ins/makefile.mingw.in: Really add it this time.
2000-08-25 Sven Neumann <sven@gimp.org>
 
* PLUGIN_MAINTAINERS: updated
......
......@@ -401,6 +401,8 @@ gimp_change_win_cursor (GdkWindow *win,
bmcursor->y_hot);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);
gdk_bitmap_unref (bitmap);
gdk_bitmap_unref (mask);
}
void
......
......@@ -401,6 +401,8 @@ gimp_change_win_cursor (GdkWindow *win,
bmcursor->y_hot);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);
gdk_bitmap_unref (bitmap);
gdk_bitmap_unref (mask);
}
void
......
## Makefile for building the GIMP plug-ins with gcc on Win32.
## You should use GNU make running on cygwin.
## Use: make -f makefile.mingw
# I don't want to use many hand-written makefiles, so this is quite complex.
# This same makefile is also included by sub-makes called as subroutines.
# Various parts of this file are used when makeing from the plug-ins directory,
# and when building individual plug-ins and what's left of the gck library.
# This is what I use as installation target, from where the installer-builder
# will pick it up.
DEST = /install/gimp
ifndef GIMPTOP
GIMPTOP = ..
endif
TOP = ../..
include $(GIMPTOP)/build/win32/make.mingw
# Possibly override GIMP version from build/win32/module.defs
GIMP_VER = @GIMP_MAJOR_VERSION@.@GIMP_MINOR_VERSION@
################################################################
ifndef LIBRARY
ifndef PLUGIN
ifndef MODULE
# This part is used when making from the plug-ins directory
FROMPLUGINSDIR=YES # Used to bypass other parts below
# List plug-ins. Use several lists just so that this makefile looks more like
# the one used with Microsoft's nmake, which has silly limits.
# These are in the common subdirectory
COMMON = \
AlienMap \
AlienMap2 \
CEL \
CML_explorer \
aa \
align_layers \
animationplay \
animoptimize \
apply_lens \
autocrop \
autostretch_hsv \
blinds \
blur \
borderaverage \
bumpmap \
c_astretch \
checkerboard \
colorify \
compose \
convmatrix \
csource \
cubism \
curve_bend \
decompose \
deinterlace \
depthmerge \
despeckle \
destripe \
diffraction \
displace \
edge \
emboss \
engrave \
exchange \
film \
flarefx \
fractaltrace \
gauss_iir \
gauss_rle \
gbr \
gee \
gicon \
gif \
gifload \
glasstile \
gpb \
gqbist \
gradmap \
grid \
gtm \
guillotine \
gz \
header \
hot \
hrz \
illusion \
iwarp \
jigsaw \
jpeg \
laplace \
lic \
mapcolor \
max_rgb \
mblur \
newsprint \
nlfilt \
noisify \
normalize \
nova \
oilify \
papertile \
pat \
pcx \
pix \
pixelize \
plasma \
plugindetails \
png \
pnm \
polar \
ps \
psd \
psp \
randomize \
ripple \
rotate \
sample_colorize \
scatter_hsv \
semiflatten \
sharpen \
shift \
sinus \
smooth_palette \
snoise \
sobel \
sparkle \
spheredesigner \
spread \
struc \
sunras \
tga \
threshold_alpha \
tiff \
tile \
tileit \
tiler \
unsharp \
video \
vinvert \
vpropagate \
warp \
waves \
whirlpinch \
winclipboard \
wind \
winprint \
wmf \
xbm \
xwd \
zealouscrop
# These have own subdirectories each
SEPARATE = \
FractalExplorer \
Lighting \
MapObject \
bmp \
dbbrowser \
faxg3 \
fits \
flame \
fp \
gfig \
gflare \
gfli \
gimpressionist \
gdyntext \
ifscompose \
imagemap \
maze \
mosaic \
pagecurl \
rcm \
sel2path \
sgi \
twain \
webbrowser \
winsnap
# These are unofficial, ie not in the CVS. To build these, you should
# get tml's source snapshot and copy this makefile to the
# ../unofficial-plug-ins directory, go there, and do "make -f
# makefile.mingw unofficial".
UNOFFICIAL = \
Anamorphose \
DigitalSignature \
RGB_Displace \
ccanalyze \
fixer \
gimp_ace \
guash \
homogenizer \
kaleidoscope \
logconv \
sel_gauss \
magiceye \
mathmap \
psd_save \
resynthesizer \
user_filter
# The main target
all : ../config.h libs-all common-plugins-all separate-plugins-all
../config.h : ../config.h.win32
cp ../config.h.win32 ../config.h
install : libs-install common-plugins-install separate-plugins-install data-install
unofficial:
for d in $(UNOFFICIAL); do $(MAKE) -f makefile.mingw sub-one-separate DIR=$$d TARGET=install EXTRADEFINES=-DGIMP_ENABLE_COMPAT_CRUFT; done
clean:: libs-clean common-plugins-clean separate-plugins-clean
libs-all :
$(MAKE) -f makefile.mingw sub-libs TARGET=all
libs-install :
$(MAKE) -f makefile.mingw sub-libs TARGET=install
libs-clean :
$(MAKE) -f makefile.mingw sub-libs TARGET=clean
sub-libs:
cd libgck/gck; $(MAKE) -f ../../makefile.mingw GIMPTOP=../../.. TOP=../../$(TOP) LIBRARY=gck OBJECTS="gckcolor.o" $(TARGET)
common-plugins-all :
$(MAKE) -f makefile.mingw sub-common-plugins TARGET=all
common-plugins-install :
$(MAKE) -f makefile.mingw sub-common-plugins TARGET=install
common-plugins-clean :
cd common; $(MAKE) -f ../makefile.mingw GIMPTOP=../.. LIBRARY=PLUGIN=dummy clean
sub-common-plugins :
for d in $(COMMON); do $(MAKE) -f makefile.mingw sub-one-common DIR=$$d TARGET=$(TARGET); done
sub-one-common :
cd common; $(MAKE) -f ../makefile.mingw GIMPTOP=../.. TOP=../$(TOP) PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
separate-plugins-all :
$(MAKE) -f makefile.mingw sub-separate-plugins TARGET=all
separate-plugins-install :
$(MAKE) -f makefile.mingw sub-separate-plugins TARGET=install
separate-plugins-clean :
$(MAKE) -f makefile.mingw sub-separate-plugins TARGET=clean
sub-separate-plugins : sub-script-fu sub-gap
for d in $(SEPARATE); do $(MAKE) -f makefile.mingw sub-one-separate DIR=$$d TARGET=$(TARGET); done
# We must handle script-fu separately because of the dash, sigh
sub-script-fu :
cd script-fu; $(MAKE) -f ../makefile.mingw GIMPTOP=../.. TOP=../$(TOP) PLUGIN=script-fu EXTRA_script_fu=1 $(TARGET)
# Also GAP is special
sub-gap :
cd gap; $(MAKE) -f ../makefile.mingw GIMPTOP=../.. TOP=../$(TOP) PLUGIN=gap_filter EXTRA_gap_filter=1 $(TARGET)
cd gap; $(MAKE) -f ../makefile.mingw GIMPTOP=../.. TOP=../$(TOP) PLUGIN=gap_plugins EXTRA_gap_plugins=1 $(TARGET)
sub-one-separate :
cd $(DIR); $(MAKE) -f ../makefile.mingw GIMPTOP=../.. TOP=../$(TOP) PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
data-install : gap-data-install gflare-data-install gimpressionist-data-install guash-data-install script-fu-data-install
gap-data-install:
-mkdir $(DEST)/scripts
$(INSTALL) gap/*.scm $(DEST)/scripts
gflare-data-install:
-mkdir $(DEST)/gflare
-$(INSTALL) gflare/gflares/* $(DEST)/gflare
-rm $(DEST)/gflare/Makefile.am
gimpressionist-data-install :
-mkdir $(DEST)/gimpressionist $(DEST)/gimpressionist/Brushes $(DEST)/gimpressionist/Paper $(DEST)/gimpressionist/Presets
$(INSTALL) gimpressionist/Brushes/*.p?m $(DEST)/gimpressionist/Brushes
$(INSTALL) gimpressionist/Paper/*.p?m $(DEST)/gimpressionist/Paper
-$(INSTALL) gimpressionist/Presets/* $(DEST)/gimpressionist/Presets
-rm $(DEST)/gimpressionist/Presets/Makefile.am
guash-data-install:
script-fu-data-install:
-mkdir $(DEST)/scripts
$(INSTALL) script-fu/scripts/*.scm $(DEST)/scripts
rm $(DEST)/scripts/test-sphere.scm
$(INSTALL) script-fu/scripts/*.jpg $(DEST)/scripts
for d in FractalExplorer/fractalexplorer-examples/*; do if [ -f $$d ]; then $(INSTALL) $$d $(DEST)/fractalexplorer; fi; done
rm $(DEST)/fractalexplorer/Makefile.am
endif # ifndef MODULE
endif # ifndef PLUGIN
endif # ifndef LIBRARY
################################################################
ifndef FROMPLUGINSDIR
# This part is used when building individual plug-ins or one of
# the libraries.
ifdef EXTRA_FractalExplorer
OBJECTS = \
Dialogs.o \
Events.o \
FractalExplorer.o \
Globals.o
endif
ifdef EXTRA_Lighting
OBJECTS = \
lighting_apply.o \
lighting_image.o \
lighting_main.o \
lighting_preview.o \
lighting_shade.o \
lighting_ui.o
endif
ifdef EXTRA_MapObject
OBJECTS = \
arcball.o \
mapobject_apply.o \
mapobject_image.o \
mapobject_main.o \
mapobject_preview.o \
mapobject_shade.o \
mapobject_ui.o
endif
ifdef EXTRA_aa
EXTRACFLAGS = -I $(TOP)/aalib-1.2
EXTRALIBS = $(TOP)/aalib-1.2/libaa.a
endif
ifdef EXTRA_bmp
OBJECTS = \
bmp.o \
bmpread.o \
bmpwrite.o
endif
ifdef EXTRA_dbbrowser
OBJECTS = \
dbbrowser.o \
dbbrowser_utils.o
endif
ifdef EXTRA_faxg3
OBJECTS = \
faxg3.o \
g3.o \
run_tbl.o
endif
ifdef EXTRA_fits
OBJECTS = \
fits.o \
fitsrw.o
endif
ifdef EXTRA_fixer
OBJECTS = \
fixer.o
EXTRALIBS = -lstdc++
endif
ifdef EXTRA_flame
OBJECTS = \
cmap.o \
flame.o \
libifs.o \
rect.o
endif
ifdef EXTRA_fp
OBJECTS = \
fp.o \
fp_gdk.o \
fp_gtk.o \
fp_misc.o
endif
ifdef EXTRA_gap_filter
OBJECTS = \
gap_filter_main.o \
gap_dbbrowser_utils.o \
gap_filter_foreach.o \
gap_filter_iterators.o \
gap_filter_pdb.o \
gap_filter_codegen.o \
gap_arr_dialog.o \
gap_pdb_calls.o
endif
ifdef EXTRA_gap_plugins
OBJECTS = \
gap_main.o \
gap_mov_exec.o \
gap_range_ops.o \
gap_arr_dialog.o \
gap_mov_dialog.o \
gap_layer_copy.o \
gap_split.o \
gap_resi_dialog.o \
gap_mpege.o \
gap_mod_layer.o \
gap_filter_pdb.o \
gap_filter_codegen.o \
gap_dbbrowser_utils.o \
gap_match.o \
gap_lib.o \
gap_exchange_image.o \
gap_pdb_calls.o \
resize.o
endif
ifdef EXTRA_gdyntext
OBJECTS = \
charmap.o \
charmap_window.o \
font_selection.o \
gdyntext.o \
gdyntextcompat.o \
gdyntext_ui.o \
message_window.o
endif
ifdef EXTRA_gflare
OBJECTS = \
asupsample.o \
gflare.o \
gtkmultioptionmenu.o
endif
ifdef EXTRA_gfli
OBJECTS = \
fli.o \
gfli.o
endif
ifdef EXTRA_helpbrowser
OBJECTS = \
helpbrowser.o \
queue.o
endif
ifdef EXTRA_homogenizer
OBJECTS = \
homogenize.o
EXTRALIBS = -lstdc++
endif
ifdef EXTRA_ifscompose
OBJECTS = \
ifscompose.o \
ifscompose_storage.o \
ifscompose_utils.o
endif
ifdef EXTRA_imagemap
OBJECTS = \
imap_cmd_copy_object.o \
imap_about.o \
imap_browse.o \
imap_cern_lex.o \
imap_cern_parse.o \
imap_circle.o \
imap_cmd_clear.o \
imap_cmd_copy.o \
imap_cmd_create.o \
imap_cmd_cut.o \
imap_cmd_cut_object.o \
imap_cmd_delete.o \
imap_cmd_delete_point.o \
imap_cmd_edit_object.o \
imap_cmd_guides.o \
imap_cmd_insert_point.o \
imap_cmd_move.o \
imap_cmd_move_down.o \
imap_cmd_move_sash.o \
imap_cmd_move_selected.o \
imap_cmd_move_to_front.o \
imap_cmd_move_up.o \
imap_cmd_object_down.o \
imap_cmd_object_move.o \
imap_cmd_object_up.o \
imap_cmd_paste.o \
imap_cmd_select.o \
imap_cmd_select_all.o \
imap_cmd_select_next.o \
imap_cmd_select_prev.o \
imap_cmd_select_region.o \
imap_cmd_send_to_back.o \
imap_cmd_unselect.o \
imap_cmd_unselect_all.o \
imap_command.o \
imap_csim_lex.o \
imap_csim_parse.o \
imap_default_dialog.o \
imap_edit_area_info.o \
imap_file.o \
imap_grid.o \
imap_main.o \
imap_menu.o \
imap_menu_funcs.o \
imap_misc.o \
imap_mru.o \
imap_ncsa_lex.o \
imap_ncsa_parse.o \
imap_object.o \
imap_object_popup.o \
imap_polygon.o \
imap_popup.o \
imap_preferences.o \
imap_preview.o \
imap_rectangle.o \
imap_selection.o \
imap_settings.o \
imap_source.o \
imap_statusbar.o \
imap_string.o \
imap_table.o \
imap_toolbar.o \
imap_tools.o
endif
ifdef EXTRA_jpeg
EXTRACFLAGS = $(JPEG_CFLAGS)
EXTRALIBS = $(JPEG_LIBS)
endif
ifdef EXTRA_maze
OBJECTS = \
algorithms.o \
handy.o \
maze.o \
maze_face.o
endif
ifdef EXTRA_mpeg
EXTRACFLAGS = -I$(MPEG)
EXTRALIBS = -L $(MPEG)/release -lmpeg
endif
ifdef EXTRA_png
EXTRACFLAGS = $(PNG_CFLAGS)
EXTRALIBS = $(PNG_LIBS)
endif
ifdef EXTRA_print
OBJECTS = \
print.o \
print-escp2.o \
print-pcl.o \
print-ps.o \
print-util.o
endif
ifdef EXTRA_psp
EXTRACFLAGS = $(ZLIB_CFLAGS)
EXTRALIBS = $(ZLIB_LIBS)
endif
ifdef EXTRA_rcm
OBJECTS = \
rcm.o \
rcm_callback.o \
rcm_dialog.o \
rcm_gdk.o \
rcm_misc.o
OPTIMIZE =
endif
ifdef EXTRA_resynthesizer
OBJECTS = \
resynth.o
EXTRALIBS = -lstdc++
endif
ifdef EXTRA_script_fu
OBJECTS = \
interp_md5.o \
interp_regex.o \
interp_slib.o \
interp_sliba.o \
interp_trace.o \
script-fu.o \
script-fu-console.o \
script-fu-constants.o \
script-fu-scripts.o \
regex.o \
dbbrowser_utils.o
EXTRACFLAGS = -DREGEX_MALLOC -I../dbbrows