浏览代码

* Reset unwind_info.flags between procedures. Writing non-zero flags without handler ends up in corrupt unwind info.

git-svn-id: trunk@19403 -
sergei 14 年之前
父节点
当前提交
a463fbc578
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      compiler/x86_64/win64unw.pas

+ 2 - 0
compiler/x86_64/win64unw.pas

@@ -255,6 +255,7 @@ begin
   FPrologueEndPos:=0;
   FPrologueEndPos:=0;
   FPrologueEndSeen:=false;
   FPrologueEndSeen:=false;
   FHandler:=nil;
   FHandler:=nil;
+  FFlags:=0;
 end;
 end;
 
 
 procedure TWin64CFI.end_frame(objdata:TObjData);
 procedure TWin64CFI.end_frame(objdata:TObjData);
@@ -274,6 +275,7 @@ begin
     Message(asmw_w_missing_endprologue);
     Message(asmw_w_missing_endprologue);
   FFrameStartSym:=nil;
   FFrameStartSym:=nil;
   FHandler:=nil;
   FHandler:=nil;
+  FFlags:=0;
   stringdispose(FName);
   stringdispose(FName);
 end;
 end;