TextUndo in Tk800.015 is slow deleting blocks of text
I just recently updated my Tk to 800.015 have noticed that all my apps
that use Tk::TextUndo take much longer to delete blocks of text from a
TextUndo window. On my system (Sun Sparc-20), deleting a block a text
that is several hundred lines long now takes several seconds. The
previous Tk (800.014) did not have this delay.
Has anybody else seen this?
Example to try:
1) Run the adj_demo program in the main Tk build directory. Open a large
file (like tkGlue.c) by double-clicking the file in the left window.
2) Select a large portion of text in the text window, say the first 1/4
of the text in the file.
3) Press delete. On my system, the system freezes for several seconds,
and then the text is deleted.
Using the perl profiler (perl -d::DProf adj_demo), it appears that the
delay is occurring in Tk::TextUndo::tagSequential
My perl info:
Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration:
Platform:
osname=solaris, osvers=2.5.1, archname=sun4-solaris
uname='sunos nbdb1 5.5.1 generic_103640-22 sun4m sparc
sunw,sparcstation-10 '
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef useperlio=undef d_sfio=undef
Compiler:
cc='cc', optimize='-O', gccversion=
cppflags='-I/usr/local/include'
ccflags ='-I/usr/local/include'
stdchar='unsigned char', d_stdstdio=define, usevfork=false
intsize=4, longsize=4, ptrsize=4, doublesize=8
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
alignbytes=8, usemymalloc=y, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc -lcrypt
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Built under solaris
Compiled at Mar 2 1999 10:23:04
%ENV:
PERL5DB="BEGIN { require Tkperldb }"
PERL5LIB="/home/cerney/perlsrc/myPerl5.005Libs"
/home/cerney/perlsrc/myPerl5.005Libs/sun4-solaris
/home/cerney/perlsrc/myPerl5.005Libs
/home/cerney/perl5.005/lib/5.00502/sun4-solaris
/home/cerney/perl5.005/lib/5.00502
/home/cerney/perl5.005/lib/site_perl/5.005/sun4-solaris
/home/cerney/perl5.005/lib/site_perl/5.005
.