浏览代码

Report ArchitecturesInstallIn64BitMode matching 32-bit system as internal error.

Because that can only happen if the script writer made a mistake.

(The prior comment about "required WOW64 APIs" is obsolete; it only applied to IA-64 Windows 5.2<SP1.)
Jordan Russell 1 年之前
父节点
当前提交
439abceed6
共有 1 个文件被更改,包括 6 次插入3 次删除
  1. 6 3
      Projects/Src/Main.pas

+ 6 - 3
Projects/Src/Main.pas

@@ -3062,9 +3062,12 @@ begin
           so that UsePreviousPrivileges knows where to look. Will log later. }
         if EvalExpression(SetupHeader.ArchitecturesInstallIn64BitMode, TDummyClass.EvalArchitectureIdentifier) then begin
           if not IsWin64 then begin
-            { A 64-bit processor was detected and 64-bit install mode was requested,
-              but IsWin64 is False, indicating required WOW64 APIs are not present }
-            AbortInit(msgWindowsVersionNotSupported);
+            { The script writer made a mistake: their expression matched a
+              32-bit system. Obviously that can't be allowed.
+              With "not" there are lots of ways that could happen without
+              explicitly specifying a 32-bit architecture in the expression.
+              One example: "not win64" }
+            InternalError('ArchitecturesInstallIn64BitMode expression matched 32-bit system');
           end;
           Initialize64BitInstallMode(True);
         end