Przeglądaj źródła

* Fix bug #32314 (SafeLoadLibrary does nothing on other platforms than windows)

git-svn-id: trunk@37049 -
michael 8 lat temu
rodzic
commit
b6700f68b8
1 zmienionych plików z 14 dodań i 33 usunięć
  1. 14 33
      rtl/objpas/sysutils/sysutils.inc

+ 14 - 33
rtl/objpas/sysutils/sysutils.inc

@@ -702,44 +702,25 @@ begin
 end;
 
 
-function SafeLoadLibrary(const FileName: AnsiString;
-  ErrorMode: DWord = {$ifdef windows}SEM_NOOPENFILEERRORBOX{$else windows}0{$endif windows}): HMODULE;
-{$if defined(cpui386) or defined(cpux86_64)}
-  var
-    mode : DWord;
-    fpucw : Word;
-    ssecw : DWord;
-{$endif}
-  begin
+function SafeLoadLibrary(const FileName: AnsiString; ErrorMode: DWord = {$ifdef windows}SEM_NOOPENFILEERRORBOX{$else windows}0{$endif windows}): HMODULE;
+
 {$if defined(win64) or defined(win32)}
+var
+  mode : DWord;
+
+begin
     mode:=SetErrorMode(ErrorMode);
-{$endif}
     try
-{$if defined(cpui386) or defined(cpux86_64)}
-      fpucw:=Get8087CW;
-{$ifdef cpui386}
-      if has_sse_support then
-{$endif cpui386}
-        ssecw:=GetMXCSR;
-{$endif}
-{$if defined(windows) or defined(win32)}
-      Result:=LoadLibraryA(PChar(Filename));
-{$else}
-      Result:=0;
-{$endif}
-      finally
-{$if defined(cpui386) or defined(cpux86_64)}
-      Set8087CW(fpucw);
-{$ifdef cpui386}
-      if has_sse_support then
-{$endif cpui386}
-        SetMXCSR(ssecw);
-{$endif}
-{$if defined(win64) or defined(win32)}
+      System.SafeLoadLibrary(FileName);
+    finally
       SetErrorMode(mode);
-{$endif}
     end;
-  end;
+end;
+{$else}
+begin
+  System.SafeLoadLibrary(FileName);
+end;
+{$endif}
 
 function GetModuleName(Module: HMODULE): string;
 {$ifdef MSWINDOWS}