581 _old_entries = NULL;
582 while (entry != NULL) {
583 if (log_is_enabled(Debug, interpreter, oopmap)) {
584 ResourceMark rm;
585 log_debug(interpreter, oopmap)("cleanup entry %s at bci %d",
586 entry->method()->name_and_sig_as_C_string(), entry->bci());
587 }
588 OopMapCacheEntry* next = entry->_next;
589 entry->flush();
590 FREE_C_HEAP_OBJ(entry);
591 entry = next;
592 }
593 }
594
595 void OopMapCache::compute_one_oop_map(const methodHandle& method, int bci, InterpreterOopMap* entry) {
596 // Due to the invariants above it's tricky to allocate a temporary OopMapCacheEntry on the stack
597 OopMapCacheEntry* tmp = NEW_C_HEAP_OBJ(OopMapCacheEntry, mtClass);
598 tmp->initialize();
599 tmp->fill(method, bci);
600 entry->resource_copy(tmp);
601 FREE_C_HEAP_ARRAY(OopMapCacheEntry, tmp);
602 }
|
581 _old_entries = NULL;
582 while (entry != NULL) {
583 if (log_is_enabled(Debug, interpreter, oopmap)) {
584 ResourceMark rm;
585 log_debug(interpreter, oopmap)("cleanup entry %s at bci %d",
586 entry->method()->name_and_sig_as_C_string(), entry->bci());
587 }
588 OopMapCacheEntry* next = entry->_next;
589 entry->flush();
590 FREE_C_HEAP_OBJ(entry);
591 entry = next;
592 }
593 }
594
595 void OopMapCache::compute_one_oop_map(const methodHandle& method, int bci, InterpreterOopMap* entry) {
596 // Due to the invariants above it's tricky to allocate a temporary OopMapCacheEntry on the stack
597 OopMapCacheEntry* tmp = NEW_C_HEAP_OBJ(OopMapCacheEntry, mtClass);
598 tmp->initialize();
599 tmp->fill(method, bci);
600 entry->resource_copy(tmp);
601 FREE_C_HEAP_OBJ(tmp);
602 }
|