Просмотр исходного кода

LibWeb: Fix two spec transcription mistakes in live range updating

This scores us another point on Acid3. :^)
Andreas Kling 3 лет назад
Родитель
Сommit
68f3feb1d1
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      Userland/Libraries/LibWeb/DOM/Node.cpp

+ 3 - 3
Userland/Libraries/LibWeb/DOM/Node.cpp

@@ -323,7 +323,7 @@ void Node::insert_before(NonnullRefPtr<Node> node, RefPtr<Node> child, bool supp
 
 
         // 2. For each live range whose end node is parent and end offset is greater than child’s index, increase its end offset by count.
         // 2. For each live range whose end node is parent and end offset is greater than child’s index, increase its end offset by count.
         for (auto& range : Range::live_ranges()) {
         for (auto& range : Range::live_ranges()) {
-            if (range->start_container() == this && range->end_offset() > child->index())
+            if (range->end_container() == this && range->end_offset() > child->index())
                 range->set_end(*range->end_container(), range->end_offset() + count);
                 range->set_end(*range->end_container(), range->end_offset() + count);
         }
         }
     }
     }
@@ -426,13 +426,13 @@ void Node::remove(bool suppress_observers)
 
 
     // 6. For each live range whose start node is parent and start offset is greater than index, decrease its start offset by 1.
     // 6. For each live range whose start node is parent and start offset is greater than index, decrease its start offset by 1.
     for (auto& range : Range::live_ranges()) {
     for (auto& range : Range::live_ranges()) {
-        if (range->start_container() == this && range->start_offset() > index)
+        if (range->start_container() == parent && range->start_offset() > index)
             range->set_start(*range->start_container(), range->start_offset() - 1);
             range->set_start(*range->start_container(), range->start_offset() - 1);
     }
     }
 
 
     // 7. For each live range whose end node is parent and end offset is greater than index, decrease its end offset by 1.
     // 7. For each live range whose end node is parent and end offset is greater than index, decrease its end offset by 1.
     for (auto& range : Range::live_ranges()) {
     for (auto& range : Range::live_ranges()) {
-        if (range->end_container() == this && range->end_offset() > index)
+        if (range->end_container() == parent && range->end_offset() > index)
             range->set_end(*range->end_container(), range->end_offset() - 1);
             range->set_end(*range->end_container(), range->end_offset() - 1);
     }
     }