Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(540)

Side by Side Diff: Source/core/accessibility/AXObjectCache.cpp

Issue 235113002: Oilpan: Remove guardRef and guardDeref from TreeScope. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address review comments. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 AXID axID = m_renderObjectMapping.get(renderer); 531 AXID axID = m_renderObjectMapping.get(renderer);
532 remove(axID); 532 remove(axID);
533 m_renderObjectMapping.remove(renderer); 533 m_renderObjectMapping.remove(renderer);
534 } 534 }
535 535
536 void AXObjectCache::remove(Node* node) 536 void AXObjectCache::remove(Node* node)
537 { 537 {
538 if (!node) 538 if (!node)
539 return; 539 return;
540 540
541 removeNodeForUse(node); 541 removeNodeForUse(node);
Mads Ager (chromium) 2014/04/24 14:12:14 This is where it is cleared and it is called form
542 542
543 // This is all safe even if we didn't have a mapping. 543 // This is all safe even if we didn't have a mapping.
544 AXID axID = m_nodeObjectMapping.get(node); 544 AXID axID = m_nodeObjectMapping.get(node);
545 remove(axID); 545 remove(axID);
546 m_nodeObjectMapping.remove(node); 546 m_nodeObjectMapping.remove(node);
547 547
548 if (node->renderer()) { 548 if (node->renderer()) {
549 remove(node->renderer()); 549 remove(node->renderer());
550 return; 550 return;
551 } 551 }
(...skipping 12 matching lines...) Expand all
564 void AXObjectCache::remove(AbstractInlineTextBox* inlineTextBox) 564 void AXObjectCache::remove(AbstractInlineTextBox* inlineTextBox)
565 { 565 {
566 if (!inlineTextBox) 566 if (!inlineTextBox)
567 return; 567 return;
568 568
569 AXID axID = m_inlineTextBoxObjectMapping.get(inlineTextBox); 569 AXID axID = m_inlineTextBoxObjectMapping.get(inlineTextBox);
570 remove(axID); 570 remove(axID);
571 m_inlineTextBoxObjectMapping.remove(inlineTextBox); 571 m_inlineTextBoxObjectMapping.remove(inlineTextBox);
572 } 572 }
573 573
574 // FIXME: Oilpan: Use a weak hashmap for this instead.
575 void AXObjectCache::clearWeakMembers(Visitor* visitor)
576 {
577 Vector<Node*> deadNodes;
578 for (HashMap<Node*, AXID>::iterator it = m_nodeObjectMapping.begin(); it != m_nodeObjectMapping.end(); ++it) {
579 if (!visitor->isAlive(it->key))
580 deadNodes.append(it->key);
581 }
582 for (unsigned i = 0; i < deadNodes.size(); ++i)
583 remove(deadNodes[i]);
584 }
585
574 AXID AXObjectCache::platformGenerateAXID() const 586 AXID AXObjectCache::platformGenerateAXID() const
575 { 587 {
576 static AXID lastUsedID = 0; 588 static AXID lastUsedID = 0;
577 589
578 // Generate a new ID. 590 // Generate a new ID.
579 AXID objID = lastUsedID; 591 AXID objID = lastUsedID;
580 do { 592 do {
581 ++objID; 593 ++objID;
582 } while (!objID || HashTraits<AXID>::isDeletedValue(objID) || m_idsInUse.con tains(objID)); 594 } while (!objID || HashTraits<AXID>::isDeletedValue(objID) || m_idsInUse.con tains(objID));
583 595
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 { 1012 {
1001 postPlatformNotification(getOrCreate(scrollView), AXScrollPositionChanged); 1013 postPlatformNotification(getOrCreate(scrollView), AXScrollPositionChanged);
1002 } 1014 }
1003 1015
1004 void AXObjectCache::handleScrollPositionChanged(RenderObject* renderObject) 1016 void AXObjectCache::handleScrollPositionChanged(RenderObject* renderObject)
1005 { 1017 {
1006 postPlatformNotification(getOrCreate(renderObject), AXScrollPositionChanged) ; 1018 postPlatformNotification(getOrCreate(renderObject), AXScrollPositionChanged) ;
1007 } 1019 }
1008 1020
1009 } // namespace WebCore 1021 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698