delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/03/05/20:58:07

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
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 <jdtiller AT best DOT com>
To: <cygwin AT cygwin DOT com>
Subject: Re: Patch submission for AltGr handling
In-Reply-To: <200103060151.UAA06498@envy.delorie.com>
Message-ID: <Pine.WNT.4.32.0103051753450.-350215@tiller2.ventritex.com>
X-X-Sender: jdtiller AT shell3 DOT ba DOT best DOT com
MIME-Version: 1.0

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019