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

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

Issue 171843002: [oilpan] Remove GC_INFO_{DEFINE,DECLARE} macros (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: rebased Created 6 years, 10 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/css/CSSValuePool.h ('k') | Source/heap/Visitor.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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 911 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 } 922 }
923 923
924 void operator delete(void* p) 924 void operator delete(void* p)
925 { 925 {
926 ASSERT_NOT_REACHED(); 926 ASSERT_NOT_REACHED();
927 } 927 }
928 928
929 protected: 929 protected:
930 GarbageCollected() { ASSERT(ThreadStateFor<ThreadingTrait<T>::Affinity>::Sta te()->contains(reinterpret_cast<Address>(this))); } 930 GarbageCollected() { ASSERT(ThreadStateFor<ThreadingTrait<T>::Affinity>::Sta te()->contains(reinterpret_cast<Address>(this))); }
931 ~GarbageCollected() { } 931 ~GarbageCollected() { }
932
933 public:
934 typedef T GarbageCollectedBase;
932 }; 935 };
933 936
934 // Forward declaration. 937 // Forward declaration.
935 template<typename T> class Persistent; 938 template<typename T> class Persistent;
936 #if defined(TRACE_GC_MARKING) && TRACE_GC_MARKING 939 #if defined(TRACE_GC_MARKING) && TRACE_GC_MARKING
937 template<typename T> class NamedPersistent; 940 template<typename T> class NamedPersistent;
938 #endif 941 #endif
939 942
940 // Base class for the transition period. Provides new and delete 943 // Base class for the transition period. Provides new and delete
941 // operators for allocation on the heap as well as finalization 944 // operators for allocation on the heap as well as finalization
942 // behavior. 945 // behavior.
943 template<typename T> 946 template<typename T>
944 class GarbageCollectedFinalized : public GarbageCollected<T> { 947 class GarbageCollectedFinalized : public GarbageCollected<T> {
945 WTF_MAKE_NONCOPYABLE(GarbageCollectedFinalized); 948 WTF_MAKE_NONCOPYABLE(GarbageCollectedFinalized);
946 949
947 protected: 950 protected:
948 // Finalize is called when the object is freed from the heap. Finalize 951 // Finalize is called when the object is freed from the heap. Finalize
949 // can be overridden to support calling the destructor of a subclass. 952 // can be overridden to support calling the destructor of a subclass.
950 // This is similar to the way deref is overridden to call delete on 953 // This is similar to the way deref is overridden to call delete on
951 // the correct subtype. 954 // the correct subtype.
952 void finalize() 955 void finalize()
953 { 956 {
954 static_cast<T*>(this)->~T(); 957 static_cast<T*>(this)->~T();
955 } 958 }
959 template<typename Any> friend struct FinalizerTrait;
956 960
957 GarbageCollectedFinalized() { } 961 GarbageCollectedFinalized() { }
958 ~GarbageCollectedFinalized() { } 962 ~GarbageCollectedFinalized() { }
959 friend void heapAllocatedFinalizer<T>(void*); 963 friend void heapAllocatedFinalizer<T>(void*);
960 template<typename U> friend struct HasFinalizer; 964 template<typename U> friend struct HasFinalizer;
961 template<typename U, bool> friend struct FinalizerTraitImpl; 965 template<typename U, bool> friend struct FinalizerTraitImpl;
962 }; 966 };
963 967
964 // Base class for objects that are in the heap and are still reference 968 // Base class for objects that are in the heap and are still reference
965 // counted. 969 // counted.
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1369 }; 1373 };
1370 1374
1371 template<typename T, typename Traits> 1375 template<typename T, typename Traits>
1372 class HeapVectorBacking { }; 1376 class HeapVectorBacking { };
1373 template<typename Key, typename Value, typename Extractor, typename Traits, type name KeyTraits> 1377 template<typename Key, typename Value, typename Extractor, typename Traits, type name KeyTraits>
1374 class HeapHashTableBacking { }; 1378 class HeapHashTableBacking { };
1375 1379
1376 } // namespace WebCore 1380 } // namespace WebCore
1377 1381
1378 #endif 1382 #endif
OLDNEW
« no previous file with comments | « Source/core/css/CSSValuePool.h ('k') | Source/heap/Visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698