1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-21 21:52:10 +02:00

Bug 562407: Avoid save of register groups before init done

Added a boolean which is set to true when groups are
successfully read on startup so that shutdown doesn't
attempt to save an empty register group list

Change-Id: Idfff94afbd6b9eb73d01dadbeb8a8fd24c83a19a
Signed-off-by: Santiago Gil <santipoborina@hotmail.com>
This commit is contained in:
Santiago Gil 2021-01-19 09:18:03 -05:00 committed by Jonah Graham
parent f7a3b1b066
commit 27b9002fbc

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2014 Ericsson AB and others.
* Copyright (c) 2014, 2021 Ericsson AB and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@ -11,6 +11,7 @@
* Contributors:
* Alvaro Sanchez-Leon (Ericsson) - First Implementation and API (Bug 235747)
* Bruno Medeiros (Renesas) - Persistence of register groups per process (449104)
* Santiago Gil-Sanchez (Microchip) - Avoid save of register groups before init done (Bug 562407)
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.service;
@ -63,6 +64,12 @@ import org.eclipse.osgi.util.NLS;
*/
public class GDBRegisters extends MIRegisters implements IRegisters2 {
/**
* true if groups have been read on initialization.
* Will prevent save of blank register groups if eclipse shuts down on startup
*/
private boolean groupsRead = false;
/**
* Unique temporary id for a group. 0 is reserved for the root group
*/
@ -723,7 +730,11 @@ public class GDBRegisters extends MIRegisters implements IRegisters2 {
@Override
public void shutdown(RequestMonitor rm) {
save();
//If register groups have not been read before shutdown is invoked
//then do not attempt a save as existing register groups will be overwritten with an empty list.
if (groupsRead) {
save();
}
super.shutdown(rm);
}
@ -900,6 +911,9 @@ public class GDBRegisters extends MIRegisters implements IRegisters2 {
}
MIRegisterGroupDMC[] readGroupsFromMemento(final IContainerDMContext contDmc) {
//Set to true so shutdown will have register groups to save.
groupsRead = true;
String containerId = getPersistenceIdForRegisterGroupContainer(contDmc);
RegisterGroupsPersistance deserializer = new RegisterGroupsPersistance(getLaunchConfig());
@ -916,7 +930,6 @@ public class GDBRegisters extends MIRegisters implements IRegisters2 {
groups.add(new MIRegisterGroupDMC(this, contDmc, fGroupBookingCount, group.getName()));
fGroupBookingCount++;
}
return groups.toArray(new MIRegisterGroupDMC[groups.size()]);
}
@ -1174,5 +1187,4 @@ public class GDBRegisters extends MIRegisters implements IRegisters2 {
rm.setData(true);
rm.done();
}
}