Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Mon, 5 Mar 2001 17:56:35 -0800 (Pacific Standard Time) From: Jason Tiller To: Subject: Re: Patch submission for AltGr handling In-Reply-To: <200103060151.UAA06498@envy.delorie.com> Message-ID: X-X-Sender: jdtiller AT shell3 DOT ba DOT best DOT com MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, DJ, :) On Mon, 5 Mar 2001, DJ Delorie wrote: > This is Jason: > > Thanks for the tip. I do see how that works. One thing I don't > > understand, though - why do you go through the code you do to load > > procedure addresses instead of LoadProcAddress()'ing them? > The idea is that the first time you call our stub function, it does > call LoadProcAddress. Then it rewrites the stub to simply jump to > the new address, and jumps back to the stub! The second time the > stub is called, it has nothing but the jump in it. > You can't just call the function, because you don't know what the > parameters look like (well, we do, but it's not automatic like the > jmp is, and jmp is faster). Ah, I see. This saves quite a bit of code, too, it seems. All of those nasty LoadProcAddress()'es and what. Plus, it seems to have a serious performance advantage. Still, gnarly code. Thanks for the info! ---Jason Tiller jtiller AT sjm DOT com Sonos -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple