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

Side by Side Diff: Source/platform/heap/Handle.h

Issue 262093006: Oilpan: Make the Node hierarchy RefCountedGarbageCollected instead of TreeShared. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another build fix. Created 6 years, 7 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) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 bool isHashTableDeletedValue() const { return m_raw == reinterpret_cast<T*>( -1); } 515 bool isHashTableDeletedValue() const { return m_raw == reinterpret_cast<T*>( -1); }
516 516
517 template<typename U> 517 template<typename U>
518 Member(const Persistent<U>& other) : m_raw(other) { } 518 Member(const Persistent<U>& other) : m_raw(other) { }
519 519
520 Member(const Member& other) : m_raw(other) { } 520 Member(const Member& other) : m_raw(other) { }
521 521
522 template<typename U> 522 template<typename U>
523 Member(const Member<U>& other) : m_raw(other) { } 523 Member(const Member<U>& other) : m_raw(other) { }
524 524
525 // FIXME: Oilpan: Get rid of these ASAP; this is only here to make
526 // Node hierarchy transition easier.
527 template<typename U>
528 Member(const PassRefPtr<U>& other) : m_raw(other.get()) { }
529
530 template<typename U>
531 Member(const RefPtr<U>& other) : m_raw(other.get()) { }
532
525 T* release() 533 T* release()
526 { 534 {
527 T* result = m_raw; 535 T* result = m_raw;
528 m_raw = 0; 536 m_raw = 0;
529 return result; 537 return result;
530 } 538 }
531 539
532 template<typename U> 540 template<typename U>
533 U* as() const 541 U* as() const
534 { 542 {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 // Comparison operators between (Weak)Members and Persistents 731 // Comparison operators between (Weak)Members and Persistents
724 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t Member<U>& b) { return a.get() == b.get(); } 732 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t Member<U>& b) { return a.get() == b.get(); }
725 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t Member<U>& b) { return a.get() != b.get(); } 733 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t Member<U>& b) { return a.get() != b.get(); }
726 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t Persistent<U>& b) { return a.get() == b.get(); } 734 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t Persistent<U>& b) { return a.get() == b.get(); }
727 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t Persistent<U>& b) { return a.get() != b.get(); } 735 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t Persistent<U>& b) { return a.get() != b.get(); }
728 template<typename T, typename U> inline bool operator==(const Persistent<T>& a, const Member<U>& b) { return a.get() == b.get(); } 736 template<typename T, typename U> inline bool operator==(const Persistent<T>& a, const Member<U>& b) { return a.get() == b.get(); }
729 template<typename T, typename U> inline bool operator!=(const Persistent<T>& a, const Member<U>& b) { return a.get() != b.get(); } 737 template<typename T, typename U> inline bool operator!=(const Persistent<T>& a, const Member<U>& b) { return a.get() != b.get(); }
730 template<typename T, typename U> inline bool operator==(const Persistent<T>& a, const Persistent<U>& b) { return a.get() == b.get(); } 738 template<typename T, typename U> inline bool operator==(const Persistent<T>& a, const Persistent<U>& b) { return a.get() == b.get(); }
731 template<typename T, typename U> inline bool operator!=(const Persistent<T>& a, const Persistent<U>& b) { return a.get() != b.get(); } 739 template<typename T, typename U> inline bool operator!=(const Persistent<T>& a, const Persistent<U>& b) { return a.get() != b.get(); }
732 740
741 // FIXME: Oilpan: Get rid of these ASAP; only here to make Node transition easie r.
742 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t RefPtr<U>& b) { return a.get() == b.get(); }
743 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t RefPtr<U>& b) { return a.get() != b.get(); }
744 template<typename T, typename U> inline bool operator==(const RefPtr<T>& a, cons t Member<U>& b) { return a.get() == b.get(); }
745 template<typename T, typename U> inline bool operator!=(const RefPtr<T>& a, cons t Member<U>& b) { return a.get() != b.get(); }
746 template<typename T, typename U> inline bool operator==(const Member<T>& a, cons t PassRefPtr<U>& b) { return a.get() == b.get(); }
747 template<typename T, typename U> inline bool operator!=(const Member<T>& a, cons t PassRefPtr<U>& b) { return a.get() != b.get(); }
748 template<typename T, typename U> inline bool operator==(const PassRefPtr<T>& a, const Member<U>& b) { return a.get() == b.get(); }
749 template<typename T, typename U> inline bool operator!=(const PassRefPtr<T>& a, const Member<U>& b) { return a.get() != b.get(); }
750
733 // CPP-defined type names for the transition period where we want to 751 // CPP-defined type names for the transition period where we want to
734 // support both reference counting and garbage collection based on a 752 // support both reference counting and garbage collection based on a
735 // compile-time flag. 753 // compile-time flag.
736 // 754 //
737 // C++11 template aliases were initially used (with clang only, not 755 // C++11 template aliases were initially used (with clang only, not
738 // with GCC nor MSVC.) However, supporting both CPP defines and 756 // with GCC nor MSVC.) However, supporting both CPP defines and
739 // template aliases is problematic from outside a WebCore namespace 757 // template aliases is problematic from outside a WebCore namespace
740 // when Oilpan is disabled: e.g., 758 // when Oilpan is disabled: e.g.,
741 // WebCore::RefCountedWillBeGarbageCollected as a template alias would 759 // WebCore::RefCountedWillBeGarbageCollected as a template alias would
742 // uniquely resolve from within any namespace, but if it is backed by 760 // uniquely resolve from within any namespace, but if it is backed by
743 // a CPP #define, it would expand to WebCore::RefCounted, and not the 761 // a CPP #define, it would expand to WebCore::RefCounted, and not the
744 // required WTF::RefCounted. 762 // required WTF::RefCounted.
745 // 763 //
746 // Having the CPP expansion instead be fully namespace qualified, and the 764 // Having the CPP expansion instead be fully namespace qualified, and the
747 // transition type be unqualified, would dually not work for template 765 // transition type be unqualified, would dually not work for template
748 // aliases. So, slightly unfortunately, fall back/down to the lowest 766 // aliases. So, slightly unfortunately, fall back/down to the lowest
749 // commmon denominator of using CPP macros only. 767 // commmon denominator of using CPP macros only.
750 #if ENABLE(OILPAN) 768 #if ENABLE(OILPAN)
751 #define PassRefPtrWillBeRawPtr WTF::RawPtr 769 #define PassRefPtrWillBeRawPtr WTF::RawPtr
752 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected 770 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected
753 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal ized 771 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal ized
754 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol lected 772 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol lected
755 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected 773 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected
756 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl ectedFinalized 774 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl ectedFinalized
775 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol lected
757 #define PersistentWillBeMember WebCore::Member 776 #define PersistentWillBeMember WebCore::Member
758 #define RefPtrWillBePersistent WebCore::Persistent 777 #define RefPtrWillBePersistent WebCore::Persistent
759 #define RefPtrWillBeRawPtr WTF::RawPtr 778 #define RefPtrWillBeRawPtr WTF::RawPtr
760 #define RefPtrWillBeMember WebCore::Member 779 #define RefPtrWillBeMember WebCore::Member
761 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent 780 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent
762 #define RawPtrWillBeMember WebCore::Member 781 #define RawPtrWillBeMember WebCore::Member
763 #define RawPtrWillBeWeakMember WebCore::WeakMember 782 #define RawPtrWillBeWeakMember WebCore::WeakMember
764 #define OwnPtrWillBeMember WebCore::Member 783 #define OwnPtrWillBeMember WebCore::Member
765 #define OwnPtrWillBePersistent WebCore::Persistent 784 #define OwnPtrWillBePersistent WebCore::Persistent
766 #define OwnPtrWillBeRawPtr WTF::RawPtr 785 #define OwnPtrWillBeRawPtr WTF::RawPtr
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 DummyBase() { } 850 DummyBase() { }
832 ~DummyBase() { } 851 ~DummyBase() { }
833 }; 852 };
834 853
835 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr 854 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr
836 #define RefCountedWillBeGarbageCollected WTF::RefCounted 855 #define RefCountedWillBeGarbageCollected WTF::RefCounted
837 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted 856 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted
838 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted 857 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted
839 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted 858 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted
840 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo unted 859 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo unted
860 #define TreeSharedWillBeRefCountedGarbageCollected WebCore::TreeShared
841 #define PersistentWillBeMember WebCore::Persistent 861 #define PersistentWillBeMember WebCore::Persistent
842 #define RefPtrWillBePersistent WTF::RefPtr 862 #define RefPtrWillBePersistent WTF::RefPtr
843 #define RefPtrWillBeRawPtr WTF::RefPtr 863 #define RefPtrWillBeRawPtr WTF::RefPtr
844 #define RefPtrWillBeMember WTF::RefPtr 864 #define RefPtrWillBeMember WTF::RefPtr
845 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr 865 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr
846 #define RawPtrWillBeMember WTF::RawPtr 866 #define RawPtrWillBeMember WTF::RawPtr
847 #define RawPtrWillBeWeakMember WTF::RawPtr 867 #define RawPtrWillBeWeakMember WTF::RawPtr
848 #define OwnPtrWillBeMember WTF::OwnPtr 868 #define OwnPtrWillBeMember WTF::OwnPtr
849 #define OwnPtrWillBePersistent WTF::OwnPtr 869 #define OwnPtrWillBePersistent WTF::OwnPtr
850 #define OwnPtrWillBeRawPtr WTF::OwnPtr 870 #define OwnPtrWillBeRawPtr WTF::OwnPtr
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli neCapacity> > *> { 1115 struct NeedsTracing<ListHashSetNode<T, WebCore::HeapListHashSetAllocator<T, inli neCapacity> > *> {
1096 // All heap allocated node pointers need visiting to keep the nodes alive, 1116 // All heap allocated node pointers need visiting to keep the nodes alive,
1097 // regardless of whether they contain pointers to other heap allocated 1117 // regardless of whether they contain pointers to other heap allocated
1098 // objects. 1118 // objects.
1099 static const bool value = true; 1119 static const bool value = true;
1100 }; 1120 };
1101 1121
1102 } // namespace WTF 1122 } // namespace WTF
1103 1123
1104 #endif 1124 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698