diff options
author | Eugene Tarassov | 2014-11-15 03:40:18 +0000 |
---|---|---|
committer | Eugene Tarassov | 2014-11-15 03:40:18 +0000 |
commit | d44cc27c9c79bc48954a751e92114b0d2f67fdae (patch) | |
tree | b41363e93dc096b233b0baa8fb3e53eedf476c6b /plugins/org.eclipse.tcf.debug.ui | |
parent | 6466ab5bd573bd7bbac6fefd7f30e7440934e448 (diff) | |
download | org.eclipse.tcf-d44cc27c9c79bc48954a751e92114b0d2f67fdae.tar.gz org.eclipse.tcf-d44cc27c9c79bc48954a751e92114b0d2f67fdae.tar.xz org.eclipse.tcf-d44cc27c9c79bc48954a751e92114b0d2f67fdae.zip |
Bug 451598 - Provide support for TAG_variant and TAG_variant_part
Diffstat (limited to 'plugins/org.eclipse.tcf.debug.ui')
-rw-r--r-- | plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFChildrenSubExpressions.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFChildrenSubExpressions.java b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFChildrenSubExpressions.java index 44df1ca74..8c1848e59 100644 --- a/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFChildrenSubExpressions.java +++ b/plugins/org.eclipse.tcf.debug.ui/src/org/eclipse/tcf/internal/debug/ui/model/TCFChildrenSubExpressions.java @@ -104,15 +104,22 @@ public class TCFChildrenSubExpressions extends TCFChildren { else { ISymbols.Symbol sym_data = sym_cache.getData(); if (sym_data == null) continue; - if (sym_data.getSymbolClass() != ISymbols.SymbolClass.reference) continue; - if (sym_data.getFlag(ISymbols.SYM_FLAG_ARTIFICIAL)) continue; - if (sym_data.getName() == null && !sym_data.getFlag(ISymbols.SYM_FLAG_INHERITANCE)) { - if (!findFields(sym_data, map, deref)) return false; - } - else { - TCFNodeExpression n = getField(id, deref); - n.setSortPosition(map.size()); - map.put(n.id, n); + switch (sym_data.getSymbolClass()) { + case reference: + case variant_part: + case variant: + if (sym_data.getFlag(ISymbols.SYM_FLAG_ARTIFICIAL)) continue; + if (sym_data.getName() == null && !sym_data.getFlag(ISymbols.SYM_FLAG_INHERITANCE)) { + if (!findFields(sym_data, map, deref)) return false; + } + else { + TCFNodeExpression n = getField(id, deref); + n.setSortPosition(map.size()); + map.put(n.id, n); + } + break; + default: + break; } } } |