Browse Source

* Hopefully fixed argument size problem on 64-bit windows

git-svn-id: trunk@12601 -
michael 16 years ago
parent
commit
ee3ac64afb
1 changed files with 4 additions and 1 deletions
  1. 4 1
      packages/fcl-xml/src/xmliconv_windows.pas

+ 4 - 1
packages/fcl-xml/src/xmliconv_windows.pas

@@ -38,9 +38,12 @@ function errno_location: PInteger; cdecl; external 'msvcrt.dll' name '_errno';
 function Iconv_Decode(Context: Pointer; InBuf: PChar; var InCnt: Cardinal; OutBuf: PWideChar; var OutCnt: Cardinal): Integer; stdcall;
 function Iconv_Decode(Context: Pointer; InBuf: PChar; var InCnt: Cardinal; OutBuf: PWideChar; var OutCnt: Cardinal): Integer; stdcall;
 var
 var
   OutChars: size_t;
   OutChars: size_t;
+  InChars : size_t;
 begin
 begin
   OutChars := OutCnt * sizeof(WideChar);
   OutChars := OutCnt * sizeof(WideChar);
-  Result := iconv(Context, @InBuf, InCnt, @OutBuf, OutChars);
+  InChars:=InCnt;
+  Result := iconv(Context, @InBuf, InChars, @OutBuf, OutChars);
+  InCnt:=InChars;
   OutCnt := OutChars div sizeof(WideChar);
   OutCnt := OutChars div sizeof(WideChar);
   if Result = -1 then
   if Result = -1 then
   begin
   begin