From d2c5402e2761246baea130f068604363e80112d0 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Mon, 10 May 2010 15:39:20 +0000 Subject: [PATCH] Bug 312055 - [registers][cdi] DSF mishandles empty register names in -data-list-register-names response. --- .../cdt/dsf/mi/service/MIRegisters.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java index 50d18f18066..b0181024eee 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java @@ -11,7 +11,9 @@ *******************************************************************************/ package org.eclipse.cdt.dsf.mi.service; +import java.util.ArrayList; import java.util.Hashtable; +import java.util.List; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.RequestMonitor; @@ -378,17 +380,18 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach // Wraps a list of registers in DMContexts. private MIRegisterDMC[] makeRegisterDMCs(MIRegisterGroupDMC groupDmc, IMIExecutionDMContext execDmc, String[] regNames) { - MIRegisterDMC[] regDmcList = new MIRegisterDMC[regNames.length]; - int regNo = 0 ; + List regDmcList = new ArrayList( regNames.length ); + int regNo = 0; for (String regName : regNames) { - if(execDmc != null) - regDmcList[regNo] = new MIRegisterDMC(this, groupDmc, execDmc, regNo, regName); - else - regDmcList[regNo] = new MIRegisterDMC(this, groupDmc, regNo, regName); + if(regName != null && regName.length() > 0) { + if(execDmc != null) + regDmcList.add(new MIRegisterDMC(this, groupDmc, execDmc, regNo, regName)); + else + regDmcList.add(new MIRegisterDMC(this, groupDmc, regNo, regName)); + } regNo++; } - - return regDmcList; + return regDmcList.toArray(new MIRegisterDMC[regDmcList.size()]); } /*