From 9ee027d1832abfd7dd4da5da7c0476a9dd155af0 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Sun, 15 Aug 2004 03:35:30 +0000 Subject: [PATCH] deal with C++ references --- .../eclipse/cdt/debug/mi/core/GDBTypeParser.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java index 99e60534b3b..8f81f11e294 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java @@ -106,7 +106,7 @@ public class GDBTypeParser { derived = (GDBDerivedType)gdbType; gdbType = derived.getChild(); if (type == GDBType.FUNCTION) { - sb.append("()"); + sb.append("()"); //$NON-NLS-1$ } else if (type == GDBType.ARRAY) { sb.append('[').append(derived.getDimension()).append(']'); } else if (type == GDBType.POINTER) { @@ -116,10 +116,17 @@ public class GDBTypeParser { } else if (childType == GDBType.GENERIC) { sb.insert(0, '*'); } else { - sb.insert(0, "(*").append(")"); + sb.insert(0, "(*").append(')'); //$NON-NLS-1$ } } else if (type == GDBType.REFERENCE) { - sb.insert(0, "(&").append(")"); + int childType = (gdbType != null) ? gdbType.getType() : GDBType.GENERIC; + if (childType == GDBType.POINTER || childType == GDBType.REFERENCE) { + sb.append("&"); //$NON-NLS-1$ + } else if (childType == GDBType.GENERIC) { + sb.insert(0, '&'); + } else { + sb.insert(0, "(&").append(')'); //$NON-NLS-1$ + } } } else { sb.insert(0, ' ');