NameProvider allows for providing a human-readable name for garbage-collected objects.
There's two cases of names to distinguish: a. Explicitly specified names via using NameProvider. Such names are always preserved in the system. b. Internal names that Oilpan infers from a C++ type on the class hierarchy of the object. This is not necessarily the type of the actually instantiated object.
Depending on the build configuration, Oilpan may hide names, i.e., represent them with kHiddenName, of case b. to avoid exposing internal details.
virtual const char * cppgc::NameProvider::GetHumanReadableName |
( |
| ) |
const |
|
pure virtual |
Specifies a name for the garbage-collected object. Such names will never be hidden, as they are explicitly specified by the user of this API.
Implementations of this function must not allocate garbage-collected objects or otherwise modify the cppgc heap.
V8 may call this function while generating a heap snapshot or at other times. If V8 is currently generating a heap snapshot (according to HeapProfiler::IsTakingSnapshot), then the returned string must stay alive until the snapshot generation has completed. Otherwise, the returned string must stay alive forever. If you need a place to store a temporary string during snapshot generation, use HeapProfiler::CopyNameForHeapSnapshot.
- Returns
- a human readable name for the object.