mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-31 21:05:37 +02:00
Bug 404565 - [visualizer] Thread synchronization from multicore
visualizer to debug view only works for first session Change-Id: I89cbd25169630f862129546f3ec1b3d652ee8dee Reviewed-on: https://git.eclipse.org/r/11547 IP-Clean: William Swanson <traveler@tilera.com> Tested-by: William Swanson <traveler@tilera.com> Reviewed-by: William Swanson <traveler@tilera.com>
This commit is contained in:
parent
9dc2e76ff2
commit
d4bb0bba4d
1 changed files with 23 additions and 10 deletions
|
@ -7,10 +7,14 @@
|
|||
*
|
||||
* Contributors:
|
||||
* William R. Swanson (Tilera Corporation) - initial API and implementation
|
||||
* Marc Dumais (Ericsson) - Bug 404565
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer;
|
||||
import org.eclipse.jface.viewers.TreePath;
|
||||
import org.eclipse.swt.widgets.Tree;
|
||||
|
@ -57,7 +61,10 @@ public class DebugViewTreeWalker
|
|||
*/
|
||||
public void walk()
|
||||
{
|
||||
walk(getRootPath());
|
||||
TreePath roots[] = getRootPaths();
|
||||
for(TreePath path : roots) {
|
||||
walk(path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -105,20 +112,26 @@ public class DebugViewTreeWalker
|
|||
|
||||
// --- tree path utilities ---
|
||||
|
||||
/** Gets tree path of root element. */
|
||||
public TreePath getRootPath()
|
||||
/**
|
||||
* Gets tree path of root element(s).
|
||||
* Note: each returned path is the root of a distinct debug session
|
||||
*/
|
||||
public TreePath[] getRootPaths()
|
||||
{
|
||||
// (?) This doesn't always return the expected root element.
|
||||
//return m_viewer.getTopElementPath();
|
||||
List<TreePath> paths = new ArrayList<TreePath>();
|
||||
|
||||
TreePath path = null;
|
||||
if (m_viewer != null) {
|
||||
Tree tree = (Tree) m_viewer.getControl();
|
||||
TreeItem[] items = tree.getItems();
|
||||
Object root = (items == null || items.length == 0) ? null : items[0].getData();
|
||||
if (root != null) path = new TreePath(new Object[] {root});
|
||||
|
||||
for (TreeItem item : items) {
|
||||
Object root = (item == null) ? null : item.getData();
|
||||
if (root != null) {
|
||||
paths.add(new TreePath(new Object[] {root}));
|
||||
}
|
||||
return path;
|
||||
}
|
||||
}
|
||||
return paths.toArray(new TreePath[paths.size()]);
|
||||
}
|
||||
|
||||
/** Gets tree path for child element. */
|
||||
|
|
Loading…
Add table
Reference in a new issue