| OLD | NEW |
| 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 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 669 // transition type be unqualified, would dually not work for template | 669 // transition type be unqualified, would dually not work for template |
| 670 // aliases. So, slightly unfortunately, fall back/down to the lowest | 670 // aliases. So, slightly unfortunately, fall back/down to the lowest |
| 671 // commmon denominator of using CPP macros only. | 671 // commmon denominator of using CPP macros only. |
| 672 #if ENABLE(OILPAN) | 672 #if ENABLE(OILPAN) |
| 673 #define PassRefPtrWillBeRawPtr WTF::RawPtr | 673 #define PassRefPtrWillBeRawPtr WTF::RawPtr |
| 674 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected | 674 #define RefCountedWillBeGarbageCollected WebCore::GarbageCollected |
| 675 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal
ized | 675 #define RefCountedWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinal
ized |
| 676 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected | 676 #define RefCountedWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCol
lected |
| 677 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected | 677 #define ThreadSafeRefCountedWillBeGarbageCollected WebCore::GarbageCollected |
| 678 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl
ectedFinalized | 678 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WebCore::GarbageColl
ectedFinalized |
| 679 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WebCore::
ThreadSafeRefCountedGarbageCollected |
| 679 #define RefPtrWillBePersistent WebCore::Persistent | 680 #define RefPtrWillBePersistent WebCore::Persistent |
| 680 #define RefPtrWillBeRawPtr WTF::RawPtr | 681 #define RefPtrWillBeRawPtr WTF::RawPtr |
| 681 #define RefPtrWillBeMember WebCore::Member | 682 #define RefPtrWillBeMember WebCore::Member |
| 682 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent | 683 #define RefPtrWillBeCrossThreadPersistent WebCore::CrossThreadPersistent |
| 683 #define RawPtrWillBeMember WebCore::Member | 684 #define RawPtrWillBeMember WebCore::Member |
| 684 #define RawPtrWillBeWeakMember WebCore::WeakMember | 685 #define RawPtrWillBeWeakMember WebCore::WeakMember |
| 685 #define OwnPtrWillBeMember WebCore::Member | 686 #define OwnPtrWillBeMember WebCore::Member |
| 686 #define OwnPtrWillBePersistent WebCore::Persistent | 687 #define OwnPtrWillBePersistent WebCore::Persistent |
| 687 #define OwnPtrWillBeRawPtr WTF::RawPtr | 688 #define OwnPtrWillBeRawPtr WTF::RawPtr |
| 688 #define PassOwnPtrWillBeRawPtr WTF::RawPtr | 689 #define PassOwnPtrWillBeRawPtr WTF::RawPtr |
| 689 #define NoBaseWillBeGarbageCollected WebCore::GarbageCollected | 690 #define NoBaseWillBeGarbageCollected WebCore::GarbageCollected |
| 690 #define NoBaseWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized | 691 #define NoBaseWillBeGarbageCollectedFinalized WebCore::GarbageCollectedFinalized |
| 692 #define NoBaseWillBeRefCountedGarbageCollected WebCore::RefCountedGarbageCollect
ed |
| 691 #define WillBeHeapHashMap WebCore::HeapHashMap | 693 #define WillBeHeapHashMap WebCore::HeapHashMap |
| 692 #define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap | 694 #define WillBePersistentHeapHashMap WebCore::PersistentHeapHashMap |
| 693 #define WillBeHeapHashSet WebCore::HeapHashSet | 695 #define WillBeHeapHashSet WebCore::HeapHashSet |
| 694 #define WillBePersistentHeapHashSet WebCore::PersistentHeapHashSet | 696 #define WillBePersistentHeapHashSet WebCore::PersistentHeapHashSet |
| 695 #define WillBeHeapVector WebCore::HeapVector | 697 #define WillBeHeapVector WebCore::HeapVector |
| 696 #define WillBePersistentHeapVector WebCore::PersistentHeapVector | 698 #define WillBePersistentHeapVector WebCore::PersistentHeapVector |
| 697 #define WillBeGarbageCollectedMixin WebCore::GarbageCollectedMixin | 699 #define WillBeGarbageCollectedMixin WebCore::GarbageCollectedMixin |
| 698 #define WillBeHeapSupplement WebCore::HeapSupplement | 700 #define WillBeHeapSupplement WebCore::HeapSupplement |
| 699 #define WillBeHeapSupplementable WebCore::HeapSupplementable | 701 #define WillBeHeapSupplementable WebCore::HeapSupplementable |
| 700 #define WillBeHeapTerminatedArray WebCore::HeapTerminatedArray | 702 #define WillBeHeapTerminatedArray WebCore::HeapTerminatedArray |
| 701 #define WillBeHeapTerminatedArrayBuilder WebCore::HeapTerminatedArrayBuilder | 703 #define WillBeHeapTerminatedArrayBuilder WebCore::HeapTerminatedArrayBuilder |
| 702 #define WillBeHeapLinkedStack WebCore::HeapLinkedStack | 704 #define WillBeHeapLinkedStack WebCore::HeapLinkedStack |
| 703 | 705 |
| 704 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) | 706 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) |
| 705 { | 707 { |
| 706 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<T, RefCountedGarbageCollected>::value; | 708 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<T, RefCountedGarbageCollected>::value; |
| 707 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>:
:value; | 709 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>:
:value; |
| 708 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); | 710 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); |
| 709 COMPILE_ASSERT(notRefCounted, youMustAdopt); | 711 COMPILE_ASSERT(notRefCounted, youMustAdopt); |
| 710 return PassRefPtrWillBeRawPtr<T>(ptr); | 712 return PassRefPtrWillBeRawPtr<T>(ptr); |
| 711 } | 713 } |
| 712 | 714 |
| 713 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) | 715 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) |
| 714 { | 716 { |
| 715 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<T
, RefCountedGarbageCollected>::value; | 717 static const bool isRefCountedGarbageCollected = WTF::IsSubclassOfTemplate<T
, RefCountedGarbageCollected>::value; |
| 716 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); | 718 COMPILE_ASSERT(isRefCountedGarbageCollected, useAdoptRefWillBeNoop); |
| 717 return PassRefPtrWillBeRawPtr<T>(adoptRefCountedGarbageCollected(ptr)); | 719 return PassRefPtrWillBeRawPtr<T>(adoptRefCountedGarbageCollected(ptr)); |
| 718 } | 720 } |
| 719 | 721 |
| 722 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) |
| 723 { |
| 724 static const bool isThreadSafeRefCountedGarbageCollected = WTF::IsSubclassOf
Template<T, ThreadSafeRefCountedGarbageCollected>::value; |
| 725 COMPILE_ASSERT(isThreadSafeRefCountedGarbageCollected, useAdoptRefWillBeNoop
); |
| 726 return PassRefPtrWillBeRawPtr<T>(adoptRefCountedGarbageCollected(ptr)); |
| 727 } |
| 728 |
| 720 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) | 729 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) |
| 721 { | 730 { |
| 722 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<T, RefCountedGarbageCollected>::value; | 731 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate
<T, RefCountedGarbageCollected>::value; |
| 723 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>:
:value; | 732 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>:
:value; |
| 724 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); | 733 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou
ntedGarbageCollected); |
| 725 COMPILE_ASSERT(notRefCounted, youMustAdopt); | 734 COMPILE_ASSERT(notRefCounted, youMustAdopt); |
| 726 return PassOwnPtrWillBeRawPtr<T>(ptr); | 735 return PassOwnPtrWillBeRawPtr<T>(ptr); |
| 727 } | 736 } |
| 728 | 737 |
| 729 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. | 738 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena
bled. |
| 730 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 739 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
| 731 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 740 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
| 732 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing | 741 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing |
| 733 | 742 |
| 743 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
| 744 static Persistent<type> name = arguments; |
| 745 |
| 734 #else // !ENABLE(OILPAN) | 746 #else // !ENABLE(OILPAN) |
| 735 | 747 |
| 736 template<typename T> | 748 template<typename T> |
| 737 class DummyBase { | 749 class DummyBase { |
| 738 public: | 750 public: |
| 739 DummyBase() { } | 751 DummyBase() { } |
| 740 ~DummyBase() { } | 752 ~DummyBase() { } |
| 741 }; | 753 }; |
| 742 | 754 |
| 743 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr | 755 #define PassRefPtrWillBeRawPtr WTF::PassRefPtr |
| 744 #define RefCountedWillBeGarbageCollected WTF::RefCounted | 756 #define RefCountedWillBeGarbageCollected WTF::RefCounted |
| 745 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted | 757 #define RefCountedWillBeGarbageCollectedFinalized WTF::RefCounted |
| 746 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted | 758 #define RefCountedWillBeRefCountedGarbageCollected WTF::RefCounted |
| 747 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted | 759 #define ThreadSafeRefCountedWillBeGarbageCollected WTF::ThreadSafeRefCounted |
| 748 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo
unted | 760 #define ThreadSafeRefCountedWillBeGarbageCollectedFinalized WTF::ThreadSafeRefCo
unted |
| 761 #define ThreadSafeRefCountedWillBeThreadSafeRefCountedGarbageCollected WTF::Thre
adSafeRefCounted |
| 749 #define RefPtrWillBePersistent WTF::RefPtr | 762 #define RefPtrWillBePersistent WTF::RefPtr |
| 750 #define RefPtrWillBeRawPtr WTF::RefPtr | 763 #define RefPtrWillBeRawPtr WTF::RefPtr |
| 751 #define RefPtrWillBeMember WTF::RefPtr | 764 #define RefPtrWillBeMember WTF::RefPtr |
| 752 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr | 765 #define RefPtrWillBeCrossThreadPersistent WTF::RefPtr |
| 753 #define RawPtrWillBeMember WTF::RawPtr | 766 #define RawPtrWillBeMember WTF::RawPtr |
| 754 #define RawPtrWillBeWeakMember WTF::RawPtr | 767 #define RawPtrWillBeWeakMember WTF::RawPtr |
| 755 #define OwnPtrWillBeMember WTF::OwnPtr | 768 #define OwnPtrWillBeMember WTF::OwnPtr |
| 756 #define OwnPtrWillBePersistent WTF::OwnPtr | 769 #define OwnPtrWillBePersistent WTF::OwnPtr |
| 757 #define OwnPtrWillBeRawPtr WTF::OwnPtr | 770 #define OwnPtrWillBeRawPtr WTF::OwnPtr |
| 758 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr | 771 #define PassOwnPtrWillBeRawPtr WTF::PassOwnPtr |
| 759 #define NoBaseWillBeGarbageCollected WebCore::DummyBase | 772 #define NoBaseWillBeGarbageCollected WebCore::DummyBase |
| 760 #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase | 773 #define NoBaseWillBeGarbageCollectedFinalized WebCore::DummyBase |
| 774 #define NoBaseWillBeRefCountedGarbageCollected WebCore::DummyBase |
| 761 #define WillBeHeapHashMap WTF::HashMap | 775 #define WillBeHeapHashMap WTF::HashMap |
| 762 #define WillBePersistentHeapHashMap WTF::HashMap | 776 #define WillBePersistentHeapHashMap WTF::HashMap |
| 763 #define WillBeHeapHashSet WTF::HashSet | 777 #define WillBeHeapHashSet WTF::HashSet |
| 764 #define WillBePersistentHeapHashSet WTF::HashSet | 778 #define WillBePersistentHeapHashSet WTF::HashSet |
| 765 #define WillBeHeapVector WTF::Vector | 779 #define WillBeHeapVector WTF::Vector |
| 766 #define WillBePersistentHeapVector WTF::Vector | 780 #define WillBePersistentHeapVector WTF::Vector |
| 767 #define WillBeGarbageCollectedMixin WebCore::DummyBase<void> | 781 #define WillBeGarbageCollectedMixin WebCore::DummyBase<void> |
| 768 #define WillBeHeapSupplement WebCore::Supplement | 782 #define WillBeHeapSupplement WebCore::Supplement |
| 769 #define WillBeHeapSupplementable WebCore::Supplementable | 783 #define WillBeHeapSupplementable WebCore::Supplementable |
| 770 #define WillBeHeapTerminatedArray WTF::TerminatedArray | 784 #define WillBeHeapTerminatedArray WTF::TerminatedArray |
| 771 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder | 785 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder |
| 772 #define WillBeHeapLinkedStack WTF::LinkedStack | 786 #define WillBeHeapLinkedStack WTF::LinkedStack |
| 773 | 787 |
| 774 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } | 788 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu
rn adoptRef(ptr); } |
| 775 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } | 789 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo
llected(T* ptr) { return adoptRef(ptr); } |
| 790 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeThreadSafeRefCounte
dGarbageCollected(T* ptr) { return adoptRef(ptr); } |
| 776 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } | 791 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu
rn adoptPtr(ptr); } |
| 777 | 792 |
| 778 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED | 793 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED |
| 779 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 794 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
| 780 public: \ | 795 public: \ |
| 781 ~type(); \ | 796 ~type(); \ |
| 782 private: | 797 private: |
| 783 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 798 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
| 784 public: \ | 799 public: \ |
| 785 virtual ~type(); \ | 800 virtual ~type(); \ |
| 786 private: | 801 private: |
| 787 | 802 |
| 788 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ | 803 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \ |
| 789 type::~type() { } | 804 type::~type() { } |
| 790 | 805 |
| 806 #define DEFINE_STATIC_REF_WILL_BE_PERSISTENT(type, name, arguments) \ |
| 807 static type* name = PassRefPtr<type>(arguments).leakRef(); |
| 808 |
| 791 #endif // ENABLE(OILPAN) | 809 #endif // ENABLE(OILPAN) |
| 792 | 810 |
| 793 } // namespace WebCore | 811 } // namespace WebCore |
| 794 | 812 |
| 795 namespace WTF { | 813 namespace WTF { |
| 796 | 814 |
| 797 template <typename T> struct VectorTraits<WebCore::Member<T> > : VectorTraitsBas
e<WebCore::Member<T> > { | 815 template <typename T> struct VectorTraits<WebCore::Member<T> > : VectorTraitsBas
e<WebCore::Member<T> > { |
| 798 static const bool needsDestruction = false; | 816 static const bool needsDestruction = false; |
| 799 static const bool canInitializeWithMemset = true; | 817 static const bool canInitializeWithMemset = true; |
| 800 static const bool canMoveWithMemcpy = true; | 818 static const bool canMoveWithMemcpy = true; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 929 }; | 947 }; |
| 930 | 948 |
| 931 template<typename T, typename U> | 949 template<typename T, typename U> |
| 932 struct NeedsTracing<HashMap<T, U> > { | 950 struct NeedsTracing<HashMap<T, U> > { |
| 933 static const bool value = false; | 951 static const bool value = false; |
| 934 }; | 952 }; |
| 935 | 953 |
| 936 } // namespace WTF | 954 } // namespace WTF |
| 937 | 955 |
| 938 #endif | 956 #endif |
| OLD | NEW |