This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Patch submission for AltGr handling


On Mon, Mar 05, 2001 at 05:56:35PM -0800, Jason Tiller wrote:
>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!

It still calls LoadProcAddress but only if the function is actually
needed.  So, in your case, if the program never reads from the console,
the function is never loaded from user32.dll.

cgf

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]