Shaka Player Embedded
|
#include <heap_tracer.h>
Public Member Functions | |
virtual | ~Traceable () |
virtual void | Trace (HeapTracer *tracer) const =0 |
virtual bool | IsRootedAlive () const |
virtual bool | IsShortLived () const |
Static Public Attributes | |
static constexpr const uint64_t | kShortLiveDurationMs = 5000 |
Defines an object that can be traced by the HeapTracer. Any object that stores other Traceable objects (e.g. BackingObjects or GenericConverters) MUST be Traceable so we can trace the heap.
Definition at line 43 of file heap_tracer.h.
|
inlinevirtual |
Definition at line 52 of file heap_tracer.h.
|
virtual |
Gets whether this object is defined to be alive because of a JavaScript root reference.
Reimplemented in shaka::BackingObject.
Definition at line 27 of file heap_tracer.cc.
|
virtual |
Gets whether the object is considered short-lived. This means that once the C++ ref-count is zero, the object won't remain alive for long. It is important to only set this if the JavaScript object won't be used for long.
This exists for JSC which doesn't offer a way for us to track whether a JavaScript object is still alive. If the JavaScript object is used after the backing object is destroyed, then a JavaScript exception will be thrown.
Reimplemented in shaka::js::dom::Node, shaka::js::XMLHttpRequest, shaka::js::events::Event, and shaka::js::mse::TimeRanges.
Definition at line 30 of file heap_tracer.cc.
|
pure virtual |
Called during a GC run. This should call HeapTracer::Trace on all Traceable members. Be sure to call the base method when overriding.
Implemented in shaka::Struct, shaka::Member< T >, shaka::Member< shaka::js::dom::Node >, shaka::Member< shaka::js::mse::SourceBuffer >, shaka::Member< dom::DOMStringList >, shaka::Member< shaka::js::mse::MediaSource >, shaka::Member< eme::MediaKeys >, shaka::Member< shaka::js::idb::IDBDatabase >, shaka::Member< shaka::js::mse::AudioTrackList >, shaka::Member< shaka::js::mse::MediaError >, shaka::Member< dom::DOMException >, shaka::Member< shaka::js::idb::IDBCursor >, shaka::Member< shaka::js::idb::IDBTransaction >, shaka::Member< shaka::js::mse::TextTrackList >, shaka::Member< shaka::js::mse::VideoTrackList >, shaka::Member< shaka::js::mse::HTMLMediaElement >, shaka::Member< shaka::js::idb::IDBObjectStore >, shaka::Member< shaka::js::idb::IDBIterateCursorRequest >, shaka::Member< shaka::js::dom::Document >, shaka::Member< shaka::js::events::EventTarget >, shaka::Member< shaka::js::dom::Element >, shaka::WeakJsPtr< T >, shaka::WeakJsPtr< JsFunction >, shaka::WeakJsPtr< JsPromiseResolver >, shaka::WeakJsPtr< JsPromise >, shaka::WeakJsPtr< JsObject >, shaka::WeakJsPtr< JsValue >, shaka::js::dom::Node, shaka::Promise, shaka::Callback, shaka::js::idb::IDBIterateCursorRequest, shaka::js::TestType, shaka::ByteBuffer, shaka::Any, shaka::js::XMLHttpRequest, shaka::BackingObject, shaka::js::mse::TrackList< JsTrack, PubTrack >, shaka::js::mse::TrackList< AudioTrack, media::MediaTrack >, shaka::js::mse::TrackList< VideoTrack, media::MediaTrack >, shaka::js::mse::TrackList< TextTrack, media::TextTrack >, shaka::js::events::MediaEncryptedEvent, shaka::js::events::MediaKeyMessageEvent, shaka::js::mse::HTMLMediaElement, shaka::js::mse::MediaSource, shaka::js::idb::IDBTransaction, shaka::js::idb::IDBDatabase, shaka::js::idb::IDBRequest, shaka::js::eme::MediaKeys, shaka::js::dom::Attr, shaka::js::events::Event, shaka::js::mse::SourceBuffer, shaka::ByteString, shaka::js::eme::MediaKeySession, shaka::js::events::EventTarget, shaka::js::idb::IDBCursor, shaka::js::mse::TextTrack, shaka::js::idb::IDBObjectStore, and shaka::js::dom::Element.
|
static |
The duration, in milliseconds, that an object is expected to remain alive once its C++ ref-count hits zero.
Definition at line 49 of file heap_tracer.h.