On Fri, Nov 28, 2014 at 5:54 PM, Ewald <ew...@yellowcouch.org> wrote:
> Hi,
>
> Take the following function prototype (in {$mode objfpc}{$H+} for the
> record):
>
>     Function SomeFunction(const Data: PChar; const Len: LongWord):
> String; cdecl; public;
>
> Looking at the dissasembly of this function, I see that is actually has
> three arguments. It looks more like this from an assembler perspective:
>
>     Function SomeFunction(HiddenArgument: Pointer; const Data: PChar;
> const Len: LongWord): String; cdecl; public;
>
> Which is, well, quite fascinating really. What is it doing there? I
> suspect it has something to do with the result type of the function,
> being a string?
>
> Can anybody shed some light on this?
>
> --
> Ewald

Are you sure it's not the result that is passed in the first parameter?

http://en.wikipedia.org/wiki/X86_calling_conventions#cdecl

Best regards,
Flávio
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to