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

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

Issue 189543014: Ensure proper finalization of garbage-collected types. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase and sign error in Vector Created 6 years, 9 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
« no previous file with comments | « Source/core/testing/LayerRectList.cpp ('k') | Source/heap/Heap.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) 676 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr)
677 { 677 {
678 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate <T, RefCountedGarbageCollected>::value; 678 static const bool notRefCountedGarbageCollected = !WTF::IsSubclassOfTemplate <T, RefCountedGarbageCollected>::value;
679 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>: :value; 679 static const bool notRefCounted = !WTF::IsSubclassOfTemplate<T, RefCounted>: :value;
680 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou ntedGarbageCollected); 680 COMPILE_ASSERT(notRefCountedGarbageCollected, useAdoptRefCountedWillBeRefCou ntedGarbageCollected);
681 COMPILE_ASSERT(notRefCounted, youMustAdopt); 681 COMPILE_ASSERT(notRefCounted, youMustAdopt);
682 return PassOwnPtrWillBeRawPtr<T>(ptr); 682 return PassOwnPtrWillBeRawPtr<T>(ptr);
683 } 683 }
684 684
685 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena bled. 685 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED // do nothing when oilpan is ena bled.
686 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing
687 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing
688 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) // do nothing
686 689
687 #else // !ENABLE(OILPAN) 690 #else // !ENABLE(OILPAN)
688 691
689 template<typename T> 692 template<typename T>
690 class DummyBase { 693 class DummyBase {
691 public: 694 public:
692 DummyBase() { } 695 DummyBase() { }
693 ~DummyBase() { } 696 ~DummyBase() { }
694 }; 697 };
695 698
(...skipping 26 matching lines...) Expand all
722 #define WillBeHeapSupplementable WebCore::Supplementable 725 #define WillBeHeapSupplementable WebCore::Supplementable
723 #define WillBeHeapTerminatedArray WTF::TerminatedArray 726 #define WillBeHeapTerminatedArray WTF::TerminatedArray
724 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder 727 #define WillBeHeapTerminatedArrayBuilder WTF::TerminatedArrayBuilder
725 #define WillBeHeapLinkedStack WTF::LinkedStack 728 #define WillBeHeapLinkedStack WTF::LinkedStack
726 729
727 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu rn adoptRef(ptr); } 730 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeNoop(T* ptr) { retu rn adoptRef(ptr); }
728 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo llected(T* ptr) { return adoptRef(ptr); } 731 template<typename T> PassRefPtrWillBeRawPtr<T> adoptRefWillBeRefCountedGarbageCo llected(T* ptr) { return adoptRef(ptr); }
729 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu rn adoptPtr(ptr); } 732 template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu rn adoptPtr(ptr); }
730 733
731 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED 734 #define WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED WTF_MAKE_FAST_ALLOCATED
735 #define DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \
736 public: \
737 ~type(); \
738 private:
739 #define DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(type) \
740 public: \
741 virtual ~type(); \
742 private:
743
744 #define DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(type) \
745 type::~type() { }
732 746
733 #endif // ENABLE(OILPAN) 747 #endif // ENABLE(OILPAN)
734 748
735 } // namespace WebCore 749 } // namespace WebCore
736 750
737 namespace WTF { 751 namespace WTF {
738 752
739 template <typename T> struct VectorTraits<WebCore::Member<T> > : VectorTraitsBas e<WebCore::Member<T> > { 753 template <typename T> struct VectorTraits<WebCore::Member<T> > : VectorTraitsBas e<WebCore::Member<T> > {
740 static const bool needsDestruction = false; 754 static const bool needsDestruction = false;
741 static const bool canInitializeWithMemset = true; 755 static const bool canInitializeWithMemset = true;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 }; 885 };
872 886
873 template<typename T, typename U> 887 template<typename T, typename U>
874 struct NeedsTracing<HashMap<T, U> > { 888 struct NeedsTracing<HashMap<T, U> > {
875 static const bool value = false; 889 static const bool value = false;
876 }; 890 };
877 891
878 } // namespace WTF 892 } // namespace WTF
879 893
880 #endif 894 #endif
OLDNEW
« no previous file with comments | « Source/core/testing/LayerRectList.cpp ('k') | Source/heap/Heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698