diff --git a/Meta/gc-heap-explorer.html b/Meta/gc-heap-explorer.html
index c53d5322ba1..97e09eedcaf 100644
--- a/Meta/gc-heap-explorer.html
+++ b/Meta/gc-heap-explorer.html
@@ -1279,6 +1279,9 @@
const mainApp = document.getElementById('main-app');
const fileInput = document.getElementById('file-input');
const loading = document.getElementById('loading');
+ const classSearchInput = document.getElementById('class-search');
+ const rootSearchInput = document.getElementById('root-search');
+ let currentFilterButton = document.querySelector('.filter-btn.active');
// File handling
dropZone.addEventListener('dragover', (e) => {
@@ -1386,7 +1389,9 @@
initGraph();
}
- function renderClassList(filter = '', sortBy = 'count') {
+ function renderClassList() {
+ const filter = classSearchInput.value;
+ const sortBy = currentFilterButton.dataset.sort;
const list = document.getElementById('class-list');
const maxCount = Math.max(...Object.values(classStats).map(s => s.count));
@@ -1420,7 +1425,8 @@
`).join('');
}
- function renderRootList(filter = '') {
+ function renderRootList() {
+ const filter = rootSearchInput.value;
const list = document.getElementById('root-list');
// Group roots by type
@@ -1481,31 +1487,22 @@
});
});
- document.getElementById('class-search').addEventListener('input', (e) => {
- renderClassList(e.target.value, getCurrentSort());
- });
-
- document.getElementById('root-search').addEventListener('input', (e) => {
- renderRootList(e.target.value);
- });
+ classSearchInput.addEventListener('input', renderClassList);
+ rootSearchInput.addEventListener('input', renderRootList);
document.querySelectorAll('.filter-btn').forEach(btn => {
btn.addEventListener('click', () => {
- document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));
+ currentFilterButton.classList.remove('active');
btn.classList.add('active');
- renderClassList(document.getElementById('class-search').value, btn.dataset.sort);
+ currentFilterButton = btn;
+ renderClassList();
});
});
}
- function getCurrentSort() {
- const active = document.querySelector('.filter-btn.active');
- return active ? active.dataset.sort : 'count';
- }
-
function selectClass(className) {
selectedClass = className;
- renderClassList(document.getElementById('class-search').value, getCurrentSort());
+ renderClassList();
visualizeClass(className);
}
@@ -1983,7 +1980,7 @@
// Also select the class to show it in the graph
const className = heapData[decimalAddr].class_name;
selectedClass = className;
- renderClassList(document.getElementById('class-search').value, getCurrentSort());
+ renderClassList();
visualizeClass(className);
} else {
alert('Address not found in heap dump');