14Mutex* CodeObservers::mutex_ =
nullptr;
15intptr_t CodeObservers::observers_length_ = 0;
16CodeObserver** CodeObservers::observers_ =
nullptr;
21 : delegate_(delegate) {}
27 uword prologue_offset,
30 const CodeComments* comments) {
45 realloc(observers_,
sizeof(observer) * observers_length_));
46 observers_[observers_length_ - 1] = observer;
51 uword prologue_offset,
54 const CodeComments* comments) {
56 for (intptr_t i = 0; i < observers_length_; i++) {
57 if (observers_[i]->IsActive()) {
58 observers_[i]->
Notify(
name,
base, prologue_offset, size, optimized,
65 for (intptr_t i = 0; i < observers_length_; i++) {
66 if (observers_[i]->IsActive())
return true;
72 for (intptr_t i = 0; i < observers_length_; i++) {
76 observers_length_ = 0;
81 if (mutex_ ==
nullptr) {
virtual void Notify(const char *name, uword base, uword prologue_offset, uword size, bool optimized, const CodeComments *comments)=0
static void RegisterExternal(Dart_CodeObserver observer)
static void NotifyAll(const char *name, uword base, uword prologue_offset, uword size, bool optimized, const CodeComments *comments)
static void Register(CodeObserver *observer)
virtual bool IsActive() const
ExternalCodeObserverAdapter(Dart_CodeObserver delegate)
virtual void Notify(const char *name, uword base, uword prologue_offset, uword size, bool optimized, const CodeComments *comments)
static void RegisterCodeObservers()
void * realloc(void *ptr, size_t size)
Dart_OnNewCodeCallback on_new_code