On Tue, May 19, 1998 at 11:50:18AM +0000, Gary V Vaughan wrote:
Gary> Actually, I didn't =(O| That patch certainly stops the refreeing of
Gary> unreferenced memory, but it does it in the wrong place...
Gary>
Gary> Having taken rasters comments onboard I was able to better figure
Gary> out what was going on, the attached patch fixes resize problems
Gary> correctly with respect to Imlib's cache handling and Eterms
Gary> concept of "ownership" of the background image memory.
Gary>
Gary> I have also beefed up the debug some more, so that it is easier
Gary> to follow what is happening to each ImlibImage and pixmap;
Gary> the free_image/free_pixmap statics in render_pixmap() were
Gary> braindamaged, and each type of pixmap (scrollbar, background etc.)
Gary> would inherit each others settings so I have removed them to make
Gary> way for a working implementation; also I have added -lXll to
Gary> the link libraries when checking for libgif, so that my box can
Gary> correctly detect that I have libgif installed.
Gary>
Gary> The patch applies cleanly against Eterm-DR-0.8-pre9. I hope this
Gary> is of use to you =)O|
On Thu, May 28, 1998 at 01:55:32PM +0200, Tuomo Ven{l{inen wrote:
Vendu> Hey there :)
Howdy!
Vendu> I just gave your patch a spin... Unfortunately, nothing changed
Vendu> for me :( Pre9 didn't crash here after I disabled active tags -
Vendu> not with or without pixmaps. Mandrake is having it crash on him
Vendu> even without pixmaps.... Pre9 still crashes (with the patches
Vendu> applied) if I enable active tags, fill the scrollback buffer (by
Vendu> catting c files in this case), and then do a few resizes :( Doh
Vendu> doh doh, this is the most annoying bug in 'er ever :P
Well, I have been using pre9 with this patch for about a week now -- thats
about a dozen Eterms for 10-hours/day -- with no problems =(O| Literally:
$ wget http://www.tcserv.com/Eterm/devel/Eterm-DR-0.8-pre9.tar.gz
--12:41:22-- http://www.tcserv.com:80/Eterm/devel/Eterm-DR-0.8-pre9.tar.gz
=> Eterm-DR-0.8-pre9.tar.gz'
Connecting to www.tcserv.com:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 256,733 [application/x-gzip]
0K -> .......... .......... .......... .......... .......... [ 19%]
50K -> .......... .......... .......... .......... .......... [ 39%]
100K -> .......... .......... .......... .......... .......... [ 59%]
150K -> .......... .......... .......... .......... .......... [ 79%]
200K -> .......... .......... .......... .......... .......... [ 99%]
250K -> [100%]
12:41:58 (7.44 KB/s) - Eterm-DR-0.8-pre9.tar.gz' saved [256733/256733]
$ tar zxpf Eterm-DR-0.8-pre9.tar.gz
$ (cd Eterm-DR-0.8-pre9; configure && make;)
[snip]
Configuration:
Source code location: .
Compiler: gcc,
Architecture: i586
Operating system: Linux
Compiler flags: -g -O
POSIX threads:
Graphics libraries: -lImlib -lXext -lm -lpng -lz -ljpeg -ltiff
Install path: /usr/local/bin
See src/feature.h for further configuration information.
[snip]
gcc -L../libmej -L/usr/local/lib -L/usr/local/lib -o Eterm activeconfig.o
activetags.o activeeterm.o command.o graphics.o grkelot.o pixmap.o main.o
menubar.o misc.o netdisp.o screen.o scrollbar.o utmp.o options.o system.o
threads.o -lutil -L/usr/X11R6/lib -L/usr/local/X11/lib -L/usr/X11R6/lib
-lSM -lICE -lX11 -lmej -lImlib -lXext -lm -lpng -lz -ljpeg -ltiff
/usr/local/lib/libImlib.so: undefined reference to DGifGetExtensionNext'
/usr/local/lib/libImlib.so: undefined reference to DGifGetRecordType'
/usr/local/lib/libImlib.so: undefined reference to DGifGetImageDesc'
/usr/local/lib/libImlib.so: undefined reference to DGifOpenFileName'
/usr/local/lib/libImlib.so: undefined reference to DGifGetLine'
/usr/local/lib/libImlib.so: undefined reference to DGifCloseFile'
/usr/local/lib/libImlib.so: undefined reference to DGifGetExtension'
/usr/local/lib/libImlib.so: undefined reference to PrintGifError'
[snip]
$ (cd Eterm-DR-0.8-pre9/src; gcc -L../libmej -o Eterm *.o -lutil -lmej \
-L/usr/X11R6/lib -lSM -lICE -lX11 -lImlib -lXext -lm -lpng -lz -ljpeg \
-ltiff -lgif)
$ ldd Eterm-DR-0.8-pre9/src/Eterm
/lib/nfslock.so.0 => /lib/nfslock.so.0 (0x4000d000)
libutil.so.1 => /lib/libutil.so.1 (0x40013000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40016000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4001f000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40035000)
libImlib.so.1 => /usr/local/lib/libImlib.so.1 (0x400d3000)
[imlib-1.4 from gnome-cvs on 19980525]
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400f7000)
libm.so.6 => /lib/libm.so.6 (0x40102000)
libpng.so.2 => /usr/lib/libpng.so.2 (0x4011b000)
libz.so.1 => /usr/lib/libz.so.1 (0x4013e000)
libjpeg.so.6a => /usr/lib/libjpeg.so.6a (0x4014d000)
libtiff.so.3 => /usr/lib/libtiff.so.3 (0x40169000)
libgif.so => /usr/local/lib/libgif.so (0x4019f000)
libc.so.6 => /lib/libc.so.6 (0x401a8000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ ./Eterm-DR-0.8-pre9/src/Eterm -P ~/pix/san/mov10.jpg@100x100
[change font to force a resize -> SIGSEGV]
[drag wm resize handles -> SIGSEGV as soon as I drop the handle]
[load another bg from the menu -> SIGSEGV]
$ rm -rf Eterm-DR-0.8-pre9
$ gzip -d -c download/patch-gvv2.gz | patch -p0
patching file Eterm-DR-0.8-pre9/autoconf/configure.in'
patching file Eterm-DR-0.8-pre9/configure'
patching file Eterm-DR-0.8-pre9/src/Makefile.in'
patching file Eterm-DR-0.8-pre9/src/debug.h'
patching file Eterm-DR-0.8-pre9/src/pixmap.c'
$ (cd Eterm-DR-0.8-pre9; configure && make;)
[snip]
Configuration:
Source code location: .
Compiler: gcc,
Architecture: i586
Operating system: Linux
Compiler flags: -g -O
POSIX threads:
Graphics libraries: -lImlib -lXext -lm -lpng -lz -ljpeg -ltiff -lgif
Install path: /usr/local/bin
See src/feature.h for further configuration information.
[snip]
$ ./Eterm-DR-0.8-pre9/src/Eterm -P ~/pix/san/mov10.jpg@100x100
Now I can change fonts, drag the wm resize handles, an load another bg
without crashing... I have definitely fixed *a* bug. Perhaps there is
another?
If I enable activetags, a whole other passel of bugs crash Eterm within a few
minutes of normal use, and I haven't chased any of these yet.
Vendu> I'll see if I can do anything to fix this bug. Any and all help
Vendu> is and will be greatly appreciated :)
Anyone else on the list had success/failure with this patch? If you can
send me (via personal email) your eterm MAIN config file, the background
you are using (no 700K monsters please), a list of libraries you are linked
against (particularly Imlib, since raster won't increment the soname when
the binary changes *flamebait* >:-), and an exact step by step of what you
do to build and then crash Eterm, I will endeavour to figure out what is
happening (at least, or generate a patch at best).
Cheers,
Gary V. Vaughan
--
___ _ ___ __ _
/ __|__ _ _ ___ _| | / / | / /_ _ _ _ __ _| |_ __ _ ___
| (_ / _` | '_|// / |/ /| |/ / _` | || / _` | ' \/ _` | _ \
\___\__,_|_|\_, /|___(_)___/\__,_|\_,_\__, |_||_\__,_|//_/
PGP Key from/___/ /___/
http://www.cl.cam.ac.uk/PGP/pks-commands.html#extract
http://pgp.ai.mit.edu/~bal/pks-commands.html#extract
PGP signature