Indy's zlib .obj files are compiled to use Delphi's __fastcall calling
convention, and Indy's code is written to expect that when static linking
(when dynamic loading, it uses the __cdecl calling convention instead).
In XE2, Embarcadero changed Indy to use their own zlib .obj files instead of
Indy's, but they changed their .objs to use __cdecl instead of __fastcall for
better compatiblity when accessing zlib regardless of static linking or dynamic
loading. They did not tell us about that change, so now we have to update Indy
to standardize its .obj files on __cdecl as well.
Which is not a bad thing, I do not know why we weren't doing that in the first
place since that is what zlib normally uses.
Original issue reported on code.google.com by gambit47 on 7 Oct 2011 at 7:18
Original issue reported on code.google.com by
gambit47
on 7 Oct 2011 at 7:18