Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

25 check-ins using file windows/window.c version 762921dce6

2011-03-01
18:18
Fix probably-harmless type mismatch in nogss.c (and #include "putty.h" to stop it happening again; this was spotted by GCC's "-flto" option). check-in: 0ad7c507f1 user: jacob tags: trunk
17:44
Add some extra validation to zlib decompression (primarily to shut up a GCC 4.6 warning). check-in: 7e474fcfd0 user: jacob tags: trunk
17:10
Add some "#ifdef OPTIMISE_SCROLL" scar tissue to placate GCC 4.6 -Wunused-but-set-variable. check-in: 3d803e4303 user: jacob tags: trunk
17:04
Remove an unused variable (should shut up a warning from GCC 4.6). check-in: 3fd9cd6610 user: jacob tags: trunk
17:00
Use pid_t more consistently. Should shut up a warning from GCC 4.6, and may conceivably help on platforms where int and pid_t aren't sufficiently similar. check-in: 5b7da77997 user: jacob tags: trunk
2011-02-22
13:09
Rejig the bottom-level loops in internal_mul_* to use pointers instead of array indices. You'd hope that compilers could automatically turn the one representation into the other if it was faster to do so, but apparently not: even on gcc -O3, this source transformation gains over 15% performance. check-in: 6763461ff8 user: simon tags: trunk
2011-02-21
18:06
Make bignum.py self-contained, by importing versions of the two functions I was depending on from my personal Python maths utility module. check-in: 77e95b9423 user: simon tags: trunk
13:47
Move the malloc and free of scratch space out of the internal_mul routines into their callers, where they'll be done once for a whole modpow rather than many times within each multiply. Doesn't save much time as far as I can see - perhaps a couple of percent, one second in the minute it takes to run the new bignum test suite - but seems like a sensible idea anyway on general principles. check-in: b2634a2d13 user: simon tags: trunk
2011-02-20
09:45
svn:ignore property mentioning 'bignum.txt', which is what I'm calling the output of bignum.py. check-in: cd10252a20 user: simon tags: trunk
09:42
A few more modpow tests, exercising the fallback option. This is mostly so I can valgrind both and make sure they free all their workspace - a memory leak in this code would be not merely an inconvenience but a security hazard. check-in: 79e3267f39 user: simon tags: trunk
09:27
Add tests of modpow. check-in: 3d51962f75 user: simon tags: trunk
09:14
Nearly forgot. Reinstate the original unoptimised modpow, as a fallback for when Montgomery is inapplicable. (I may also at some point switch to using it for small exponents, if speed testing should reveal that there's a noticeable threshold beyond which preparing the Montgomery setup is uneconomical.) check-in: ea08136170 user: simon tags: trunk
09:06
Fix bug in Karatsuba multiplication, which affected propagation of a carry by more than one word. Now the current set of test cases all pass again. check-in: 27088925dd user: simon tags: trunk
08:59
Beginnings of a test suite for the bignum code. The output of testdata/bignum.py is twice the size of the rest of the PuTTY source put together, so I'm not checking it in. This reveals bugs in the new multiplication code, which I have yet to fix. check-in: 44a7af2b6b user: simon tags: trunk
2011-02-18
13:12
Prompt for a remote username in rlogin connections, if one wasn't specified in the configuration. Jacob's userpass abstraction proves its worth in making this a trivial job. (Actually reported by a user - somebody's still using rlogin!) check-in: 05d4b5c93b user: simon tags: trunk
02:25
Implement the Chinese Remainder Theorem optimisation for speeding up RSA private key operations by making use of the fact that we know the factors of the modulus. check-in: a46f247bcf user: simon tags: trunk
02:25
Implement the Montgomery technique for speeding up modular exponentiation by replacing the modulo operation by a cleverly chosen multiplication. This was not worth doing in the previous state of the code (because my multiply was about as slow as my modulo), but now that multiplication has been sped up by the Karatsuba optimisation, Montgomery becomes worthwhile. check-in: 5a0a3cc1d6 user: simon tags: trunk
02:25
Implement the Karatsuba technique for recursive divide-and-conquer optimisation of large multiplies. check-in: db09cee4b7 user: simon tags: trunk
02:25
Add some appropriate bignum typedefs for generic 64-bit systems, setting BignumInt to 32 bits. gcc defines _LP64 on x86-64 and presumably on other 64-bit architectures, so I've conditioned my defines on that in the hope that they won't need redoing for the next few such architectures. I've also added a set for _LLP64, but it's untested as yet. check-in: d00a7a3fe5 user: simon tags: trunk
2011-01-15
05:39
Allow setting the WM_CLASS X window property as a configuration option in saved sessions, so that a programmable window manager can distinguish different PuTTYs/pterms on startup and assign them different window management properties. check-in: b43117417a user: simon tags: trunk
2011-01-14
13:57
Tweak to r7635: when changing between protocols in the configuration dialog and avoiding trashing a non-default port, don't treat a port of 0 as special; this was causing defaults to "freeze in" for sequences of clicks like SSH, Raw, Telnet. Arrange that a port of 0 (which in a backend indicates no default) is displayed as a blank in the port box, to make this less jarring. check-in: b987ab04d5 user: jacob tags: trunk
2011-01-05
06:01
It's a new year. check-in: 7c9ba49fb2 user: jacob tags: trunk
05:58
Remove references to the now-dead Mac OS 9 port. check-in: 5082b53ea1 user: jacob tags: trunk
2011-01-03
10:50
When iterating over all channels for a dead SSH connection, don't miss out those in the CHAN_SOCKDATA_DORMANT state (i.e., local-to-remote forwardings which the SSH server had not yet acknowledged). Marcel Kilgus has been running with the ssh_do_close() patch for nearly two years (*cough*) and reports that it has eliminated frequent 'unclean-close-crash' symptoms for him (due to the unclosed socket generating a pfd_closing() which accessed freed memory), although I've not reproduced that. The patch to ssh_free() is mine and not known to fix any symptoms. check-in: 170d3850d4 user: jacob tags: trunk
2010-12-29
18:06
Stop general_textout() from trying to slice up the input clipping rectangle into smaller ones: it doesn't work any more, since the new variable-pitch code can now call general_textout() with a larger clipping rectangle than the text it's meant to be displaying. Instead, general_textout() now uses the same semantics as the next loop up in do_text_internal(): the first piece of text it displays uses the opacity setting passed in, which blanks the entire clipping rectangle if necessary, and then subsequent overlays are non-opaque. And the same clipping rectangle is used throughout. check-in: 5d4503f498 user: simon tags: trunk