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

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

Issue 383743002: Oilpan: GC profiling. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: TracedValue update Created 6 years, 4 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/platform/TraceEvent.h ('k') | Source/platform/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 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 359
360 template<typename U> 360 template<typename U>
361 U* as() const 361 U* as() const
362 { 362 {
363 return static_cast<U*>(m_raw); 363 return static_cast<U*>(m_raw);
364 } 364 }
365 365
366 void trace(Visitor* visitor) 366 void trace(Visitor* visitor)
367 { 367 {
368 COMPILE_ASSERT_IS_GARBAGE_COLLECTED(T, NonGarbageCollectedObjectInPersis tent); 368 COMPILE_ASSERT_IS_GARBAGE_COLLECTED(T, NonGarbageCollectedObjectInPersis tent);
369 #if ENABLE(GC_TRACING) 369 #if ENABLE(GC_PROFILE_MARKING)
370 visitor->setHostInfo(this, m_tracingName.isEmpty() ? "Persistent" : m_tr acingName); 370 visitor->setHostInfo(this, m_tracingName.isEmpty() ? "Persistent" : m_tr acingName);
371 #endif 371 #endif
372 visitor->mark(m_raw); 372 visitor->mark(m_raw);
373 } 373 }
374 374
375 T* release() 375 T* release()
376 { 376 {
377 T* result = m_raw; 377 T* result = m_raw;
378 m_raw = 0; 378 m_raw = 0;
379 return result; 379 return result;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 Persistent& operator=(const RawPtr<U>& other) 415 Persistent& operator=(const RawPtr<U>& other)
416 { 416 {
417 m_raw = other; 417 m_raw = other;
418 recordBacktrace(); 418 recordBacktrace();
419 return *this; 419 return *this;
420 } 420 }
421 421
422 T* get() const { return m_raw; } 422 T* get() const { return m_raw; }
423 423
424 private: 424 private:
425 #if ENABLE(GC_TRACING) 425 #if ENABLE(GC_PROFILE_MARKING)
426 void recordBacktrace() 426 void recordBacktrace()
427 { 427 {
428 if (m_raw) 428 if (m_raw)
429 m_tracingName = Heap::createBacktraceString(); 429 m_tracingName = Heap::createBacktraceString();
430 } 430 }
431 431
432 String m_tracingName; 432 String m_tracingName;
433 #else 433 #else
434 inline void recordBacktrace() const { } 434 inline void recordBacktrace() const { }
435 #endif 435 #endif
(...skipping 24 matching lines...) Expand all
460 // DEFINE_STATIC_LOCAL et. al. 460 // DEFINE_STATIC_LOCAL et. al.
461 WTF_USE_ALLOCATOR(PersistentHeapCollectionBase, WTF::DefaultAllocator); 461 WTF_USE_ALLOCATOR(PersistentHeapCollectionBase, WTF::DefaultAllocator);
462 public: 462 public:
463 PersistentHeapCollectionBase() { } 463 PersistentHeapCollectionBase() { }
464 464
465 template<typename OtherCollection> 465 template<typename OtherCollection>
466 PersistentHeapCollectionBase(const OtherCollection& other) : Collection(othe r) { } 466 PersistentHeapCollectionBase(const OtherCollection& other) : Collection(othe r) { }
467 467
468 void trace(Visitor* visitor) 468 void trace(Visitor* visitor)
469 { 469 {
470 #if ENABLE(GC_TRACING) 470 #if ENABLE(GC_PROFILE_MARKING)
471 visitor->setHostInfo(this, "PersistentHeapCollectionBase"); 471 visitor->setHostInfo(this, "PersistentHeapCollectionBase");
472 #endif 472 #endif
473 visitor->trace(*static_cast<Collection*>(this)); 473 visitor->trace(*static_cast<Collection*>(this));
474 } 474 }
475 }; 475 };
476 476
477 template< 477 template<
478 typename KeyArg, 478 typename KeyArg,
479 typename MappedArg, 479 typename MappedArg,
480 typename HashArg = typename DefaultHash<KeyArg>::Hash, 480 typename HashArg = typename DefaultHash<KeyArg>::Hash,
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, blink::IsGa rbageCollectedType<T>::value> { 1205 struct ParamStorageTraits<T*> : public PointerParamStorageTraits<T*, blink::IsGa rbageCollectedType<T>::value> {
1206 }; 1206 };
1207 1207
1208 template<typename T> 1208 template<typename T>
1209 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, bli nk::IsGarbageCollectedType<T>::value> { 1209 struct ParamStorageTraits<RawPtr<T> > : public PointerParamStorageTraits<T*, bli nk::IsGarbageCollectedType<T>::value> {
1210 }; 1210 };
1211 1211
1212 } // namespace WTF 1212 } // namespace WTF
1213 1213
1214 #endif 1214 #endif
OLDNEW
« no previous file with comments | « Source/platform/TraceEvent.h ('k') | Source/platform/heap/Heap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698