Преглед изворни кода

* Node-stripping optimisation in "TBlockNode.simplify" now uses "has_child_of_type" to determine stop point

J. Gareth "Curious Kit" Moreton пре 1 година
родитељ
комит
59ff8a0f65
1 измењених фајлова са 4 додато и 1 уклоњено
  1. 4 1
      compiler/nbas.pas

+ 4 - 1
compiler/nbas.pas

@@ -763,6 +763,9 @@ implementation
 
 
     function tblocknode.simplify(forinline : boolean): tnode;
+      const
+        NodeStripTerminators = [labeln, asmn, tempcreaten, tempdeleten];
+
       var
         n, p, first, last: tstatementnode;
 {$ifdef break_inlining}
@@ -819,7 +822,7 @@ implementation
                           p := TStatementNode(n.Next);
                           while Assigned(p) do
                             begin
-                              if (TStatementNode(p).left.nodetype in [labeln, asmn, tempcreaten, tempdeleten, blockn]) then
+                              if has_node_of_type(TStatementNode(p).left, NodeStripTerminators) then
                                 Break;
 
                               last := p;