From: Jan P. <jp...@us...> - 2007-06-21 16:38:57
|
Update of /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/db In directory sc8-pr-cvs17:/tmp/cvs-serv18981/src/org/epic/debug/db Modified Files: PackageVariable.java Log Message: Fixed bug [ 1741069 ] Array contents not displayed correctly in Variables. Index: PackageVariable.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/db/PackageVariable.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- PackageVariable.java 13 Jun 2007 17:29:13 -0000 1.2 +++ PackageVariable.java 21 Jun 2007 16:38:51 -0000 1.3 @@ -20,12 +20,27 @@ public String getExpression() throws DebugException { String name = getName(); - StringBuffer buf = new StringBuffer(); - buf.append('\\'); - buf.append(name.charAt(0)); + + int refCount = getDumpedEntity().getReferenceCount(); + + char deref; // the outermost dereference operator + if (isArray()) deref = '@'; + else if (isHash()) deref = '%'; + else deref = '$'; + + buf.append('\\'); // we want the whole expr to be a reference + for (int i = 0; i < refCount; i++) + { + buf.append(deref); + buf.append("{"); + deref = '$'; // inner dereferences are always ${..} + } + buf.append(deref); buf.append("main::"); buf.append(name.substring(1)); + for (int i = 0; i < refCount; i++) buf.append("}"); + return buf.toString(); } |