OSDN Git Service

Add some more DISALLOW_COPY_AND_ASSIGN
authorMathieu Chartier <mathieuc@google.com>
Sun, 3 May 2015 22:20:23 +0000 (15:20 -0700)
committerMathieu Chartier <mathieuc@google.com>
Sun, 3 May 2015 22:20:23 +0000 (15:20 -0700)
May help prevent bugs maybe.

Change-Id: Ie73d469dfcd078492ecb3aa28682b42707221202

21 files changed:
compiler/jit/jit_compiler.h
runtime/gc/accounting/bitmap.h
runtime/gc/accounting/card_table.h
runtime/gc/collector/concurrent_copying.h
runtime/gc/collector/garbage_collector.h
runtime/gc/collector/mark_compact.h
runtime/gc/collector/mark_sweep.h
runtime/gc/collector/partial_mark_sweep.h
runtime/gc/collector/semi_space.h
runtime/gc/collector/sticky_mark_sweep.h
runtime/gc/heap-inl.h
runtime/gc/heap.h
runtime/gc/reference_processor.h
runtime/gc/reference_queue.h
runtime/gc/space/space.h
runtime/gc/task_processor.h
runtime/jit/jit.h
runtime/jit/jit_code_cache.h
runtime/jit/jit_instrumentation.cc
runtime/jit/jit_instrumentation.h
runtime/linear_alloc.h

index 0876499..d9a5ac6 100644 (file)
@@ -67,10 +67,11 @@ class JitCompiler {
       const uint8_t* mapping_table, const uint8_t* vmap_table, const uint8_t* gc_map);
   bool MakeExecutable(CompiledMethod* compiled_method, mirror::ArtMethod* method)
       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+
+  DISALLOW_COPY_AND_ASSIGN(JitCompiler);
 };
 
 }  // namespace jit
-
 }  // namespace art
 
 #endif  // ART_COMPILER_JIT_JIT_COMPILER_H_
index b294d49..eb00472 100644 (file)
@@ -121,7 +121,7 @@ class Bitmap {
   const size_t bitmap_size_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(Bitmap);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(Bitmap);
 };
 
 // One bit per kAlignment in range (start, end]
@@ -184,6 +184,8 @@ class MemoryRangeBitmap : public Bitmap {
 
   uintptr_t const cover_begin_;
   uintptr_t const cover_end_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(MemoryRangeBitmap);
 };
 
 }  // namespace accounting
index 75ef58a..34e6aa3 100644 (file)
@@ -146,6 +146,8 @@ class CardTable {
   // Card table doesn't begin at the beginning of the mem_map_, instead it is displaced by offset
   // to allow the byte value of biased_begin_ to equal GC_CARD_DIRTY
   const size_t offset_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(CardTable);
 };
 
 }  // namespace accounting
index 93de035..60ea6b6 100644 (file)
@@ -279,7 +279,7 @@ class ConcurrentCopying : public GarbageCollector {
   friend class FlipCallback;
   friend class ConcurrentCopyingComputeUnevacFromSpaceLiveRatioVisitor;
 
-  DISALLOW_COPY_AND_ASSIGN(ConcurrentCopying);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(ConcurrentCopying);
 };
 
 }  // namespace collector
index c5a8d5d..9b76d1a 100644 (file)
@@ -190,6 +190,9 @@ class GarbageCollector : public RootVisitor {
   int64_t total_freed_bytes_;
   CumulativeLogger cumulative_timings_;
   mutable Mutex pause_histogram_lock_ DEFAULT_MUTEX_ACQUIRED_AFTER;
+
+ private:
+  DISALLOW_IMPLICIT_CONSTRUCTORS(GarbageCollector);
 };
 
 }  // namespace collector
index 4337644..f59a2cd 100644 (file)
@@ -251,7 +251,7 @@ class MarkCompact : public GarbageCollector {
   friend class UpdateReferenceVisitor;
   friend class UpdateRootVisitor;
 
-  DISALLOW_COPY_AND_ASSIGN(MarkCompact);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(MarkCompact);
 };
 
 }  // namespace collector
index fad3403..7e1af7b 100644 (file)
@@ -336,7 +336,7 @@ class MarkSweep : public GarbageCollector {
   friend class VerifyRootMarkedVisitor;
   friend class VerifyRootVisitor;
 
-  DISALLOW_COPY_AND_ASSIGN(MarkSweep);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(MarkSweep);
 };
 
 }  // namespace collector
index ac0d068..1a211cd 100644 (file)
@@ -40,7 +40,7 @@ class PartialMarkSweep : public MarkSweep {
   virtual void BindBitmaps() OVERRIDE SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(PartialMarkSweep);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(PartialMarkSweep);
 };
 
 }  // namespace collector
index 61fbead..3c25f53 100644 (file)
@@ -278,7 +278,7 @@ class SemiSpace : public GarbageCollector {
 
  private:
   friend class BitmapSetSlowPathVisitor;
-  DISALLOW_COPY_AND_ASSIGN(SemiSpace);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(SemiSpace);
 };
 
 }  // namespace collector
index 4f9dabf..b9ef137 100644 (file)
@@ -47,7 +47,7 @@ class StickyMarkSweep FINAL : public PartialMarkSweep {
       EXCLUSIVE_LOCKS_REQUIRED(Locks::heap_bitmap_lock_);
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(StickyMarkSweep);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(StickyMarkSweep);
 };
 
 }  // namespace collector
index ac79ac2..fbf36e8 100644 (file)
@@ -371,11 +371,8 @@ inline mirror::Object* Heap::TryToAllocate(Thread* self, AllocatorType allocator
 }
 
 inline Heap::AllocationTimer::AllocationTimer(Heap* heap, mirror::Object** allocated_obj_ptr)
-    : heap_(heap), allocated_obj_ptr_(allocated_obj_ptr) {
-  if (kMeasureAllocationTime) {
-    allocation_start_time_ = NanoTime() / kTimeAdjust;
-  }
-}
+    : heap_(heap), allocated_obj_ptr_(allocated_obj_ptr),
+      allocation_start_time_(kMeasureAllocationTime ? NanoTime() / kTimeAdjust : 0u) { }
 
 inline Heap::AllocationTimer::~AllocationTimer() {
   if (kMeasureAllocationTime) {
index a4353f6..90249f9 100644 (file)
@@ -1201,41 +1201,23 @@ class Heap {
   friend class VerifyReferenceVisitor;
   friend class VerifyObjectVisitor;
   friend class ScopedHeapFill;
-  friend class ScopedHeapLock;
   friend class space::SpaceTest;
 
   class AllocationTimer {
+   public:
+    ALWAYS_INLINE AllocationTimer(Heap* heap, mirror::Object** allocated_obj_ptr);
+    ALWAYS_INLINE ~AllocationTimer();
    private:
-    Heap* heap_;
+    Heap* const heap_;
     mirror::Object** allocated_obj_ptr_;
-    uint64_t allocation_start_time_;
-   public:
-    AllocationTimer(Heap* heap, mirror::Object** allocated_obj_ptr);
-    ~AllocationTimer();
+    const uint64_t allocation_start_time_;
+
+    DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationTimer);
   };
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(Heap);
 };
 
-// ScopedHeapFill changes the bytes allocated counter to be equal to the growth limit. This
-// causes the next allocation to perform a GC and possibly an OOM. It can be used to ensure that a
-// GC happens in specific methods such as ThrowIllegalMonitorStateExceptionF in Monitor::Wait.
-class ScopedHeapFill {
- public:
-  explicit ScopedHeapFill(Heap* heap)
-      : heap_(heap),
-        delta_(heap_->GetMaxMemory() - heap_->GetBytesAllocated()) {
-    heap_->num_bytes_allocated_.FetchAndAddSequentiallyConsistent(delta_);
-  }
-  ~ScopedHeapFill() {
-    heap_->num_bytes_allocated_.FetchAndSubSequentiallyConsistent(delta_);
-  }
-
- private:
-  Heap* const heap_;
-  const int64_t delta_;
-};
-
 }  // namespace gc
 }  // namespace art
 
index c67fd98..a44319b 100644 (file)
@@ -81,6 +81,9 @@ class ReferenceProcessor {
     IsHeapReferenceMarkedCallback* is_marked_callback_;
     MarkObjectCallback* mark_callback_;
     void* arg_;
+
+   private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ProcessReferencesArgs);
   };
   bool SlowPathEnabled() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
   // Called by ProcessReferences.
@@ -105,6 +108,8 @@ class ReferenceProcessor {
   ReferenceQueue finalizer_reference_queue_;
   ReferenceQueue phantom_reference_queue_;
   ReferenceQueue cleared_references_;
+
+  DISALLOW_COPY_AND_ASSIGN(ReferenceProcessor);
 };
 
 }  // namespace gc
index f7d89d0..c45be85 100644 (file)
@@ -106,7 +106,7 @@ class ReferenceQueue {
   // GC types.
   mirror::Reference* list_;
 
-  DISALLOW_COPY_AND_ASSIGN(ReferenceQueue);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(ReferenceQueue);
 };
 
 }  // namespace gc
index f2378d9..871ebac 100644 (file)
@@ -187,7 +187,7 @@ class Space {
 
  private:
   friend class art::gc::Heap;
-  DISALLOW_COPY_AND_ASSIGN(Space);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(Space);
 };
 std::ostream& operator<<(std::ostream& os, const Space& space);
 
@@ -337,7 +337,7 @@ class ContinuousSpace : public Space {
   uint8_t* limit_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(ContinuousSpace);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(ContinuousSpace);
 };
 
 // A space where objects may be allocated higgledy-piggledy throughout virtual memory. Currently
@@ -366,7 +366,7 @@ class DiscontinuousSpace : public Space {
   std::unique_ptr<accounting::LargeObjectBitmap> mark_bitmap_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(DiscontinuousSpace);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(DiscontinuousSpace);
 };
 
 class MemMapSpace : public ContinuousSpace {
@@ -400,7 +400,7 @@ class MemMapSpace : public ContinuousSpace {
   std::unique_ptr<MemMap> mem_map_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(MemMapSpace);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(MemMapSpace);
 };
 
 // Used by the heap compaction interface to enable copying from one type of alloc space to another.
@@ -453,7 +453,7 @@ class ContinuousMemMapAllocSpace : public MemMapSpace, public AllocSpace {
 
  private:
   friend class gc::Heap;
-  DISALLOW_COPY_AND_ASSIGN(ContinuousMemMapAllocSpace);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(ContinuousMemMapAllocSpace);
 };
 
 }  // namespace space
index 67e3a54..5f48619 100644 (file)
@@ -46,6 +46,7 @@ class HeapTask : public SelfDeletingTask {
   uint64_t target_run_time_;
 
   friend class TaskProcessor;
+  DISALLOW_IMPLICIT_CONSTRUCTORS(HeapTask);
 };
 
 // Used to process GC tasks (heap trim, heap transitions, concurrent GC).
@@ -78,6 +79,8 @@ class TaskProcessor {
   std::unique_ptr<ConditionVariable> cond_ GUARDED_BY(lock_);
   std::multiset<HeapTask*, CompareByTargetRunTime> tasks_ GUARDED_BY(lock_);
   Thread* running_thread_ GUARDED_BY(lock_);
+
+  DISALLOW_COPY_AND_ASSIGN(TaskProcessor);
 };
 
 }  // namespace gc
index 3e80aef..f5ad8b8 100644 (file)
@@ -86,6 +86,8 @@ class Jit {
   std::unique_ptr<jit::JitInstrumentationCache> instrumentation_cache_;
   std::unique_ptr<jit::JitCodeCache> code_cache_;
   CompilerCallbacks* compiler_callbacks_;  // Owned by the jit compiler.
+
+  DISALLOW_COPY_AND_ASSIGN(Jit);
 };
 
 class JitOptions {
@@ -114,8 +116,9 @@ class JitOptions {
   bool dump_info_on_shutdown_;
 
   JitOptions() : use_jit_(false), code_cache_capacity_(0), compile_threshold_(0),
-      dump_info_on_shutdown_(false) {
-  }
+      dump_info_on_shutdown_(false) { }
+
+  DISALLOW_COPY_AND_ASSIGN(JitOptions);
 };
 
 }  // namespace jit
index da891fe..8b76647 100644 (file)
@@ -130,7 +130,7 @@ class JitCodeCache {
   // required since we have to implement ClassLinker::GetQuickOatCodeFor for walking stacks.
   SafeMap<mirror::ArtMethod*, const void*> method_code_map_ GUARDED_BY(lock_);
 
-  DISALLOW_COPY_AND_ASSIGN(JitCodeCache);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(JitCodeCache);
 };
 
 
index 160e678..e2f9cec 100644 (file)
@@ -47,6 +47,8 @@ class JitCompileTask : public Task {
  private:
   mirror::ArtMethod* const method_;
   JitInstrumentationCache* const cache_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(JitCompileTask);
 };
 
 JitInstrumentationCache::JitInstrumentationCache(size_t hot_method_threshold)
index 9d5d74f..72acaef 100644 (file)
@@ -58,6 +58,8 @@ class JitInstrumentationCache {
   std::unordered_map<jmethodID, size_t> samples_;
   size_t hot_method_threshold_;
   std::unique_ptr<ThreadPool> thread_pool_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(JitInstrumentationCache);
 };
 
 class JitInstrumentationListener : public instrumentation::InstrumentationListener {
@@ -97,6 +99,8 @@ class JitInstrumentationListener : public instrumentation::InstrumentationListen
 
  private:
   JitInstrumentationCache* const instrumentation_cache_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(JitInstrumentationListener);
 };
 
 }  // namespace jit
index 6d8eda6..fcabcc8 100644 (file)
@@ -42,6 +42,8 @@ class LinearAlloc {
  private:
   mutable Mutex lock_ DEFAULT_MUTEX_ACQUIRED_AFTER;
   ArenaAllocator allocator_ GUARDED_BY(lock_);
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(LinearAlloc);
 };
 
 }  // namespace art