mirror of
https://github.com/servo/servo.git
synced 2025-07-21 22:33:41 +01:00
Split getter for mutation_observers() into two methods.
registered_mutation_observers() returns immutable references and does not init mutation observers. registered_mutation_observers_mut() lazily initializes raredata if it does not exist. Updated code that uses this methods to call appropriate method when mutation is not necessary.
This commit is contained in:
parent
fe8aad7227
commit
3df8d6891e
2 changed files with 21 additions and 9 deletions
|
@ -132,7 +132,12 @@ impl MutationObserver {
|
|||
|
||||
// Step 2 & 3
|
||||
for node in target.inclusive_ancestors(ShadowIncluding::No) {
|
||||
for registered in &*node.registered_mutation_observers() {
|
||||
let registered = node.registered_mutation_observers();
|
||||
if registered.is_none() {
|
||||
continue;
|
||||
}
|
||||
|
||||
for registered in &*registered.unwrap() {
|
||||
if &*node != target && !registered.options.subtree {
|
||||
continue;
|
||||
}
|
||||
|
@ -297,7 +302,7 @@ impl MutationObserverMethods for MutationObserver {
|
|||
// Step 7
|
||||
let add_new_observer = {
|
||||
let mut replaced = false;
|
||||
for registered in &mut *target.registered_mutation_observers() {
|
||||
for registered in &mut *target.registered_mutation_observers_mut() {
|
||||
if &*registered.observer as *const MutationObserver !=
|
||||
self as *const MutationObserver
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue