mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
[208071] (performance) Traditional Memory Rendering: unnecessary populateCache
This commit is contained in:
parent
6261ce70e5
commit
5d2e5b52e0
1 changed files with 33 additions and 15 deletions
|
@ -636,6 +636,26 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
|||
BigInteger startAddress;
|
||||
|
||||
BigInteger endAddress;
|
||||
|
||||
public AddressPair(BigInteger start, BigInteger end)
|
||||
{
|
||||
startAddress = start;
|
||||
endAddress = end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(obj == null)
|
||||
return false;
|
||||
if(obj instanceof AddressPair)
|
||||
{
|
||||
return ((AddressPair) obj).startAddress.equals(startAddress)
|
||||
&& ((AddressPair) obj).endAddress.equals(endAddress);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class MemoryUnit
|
||||
|
@ -670,6 +690,8 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
|||
|
||||
private boolean fDisposed = false;
|
||||
|
||||
private Object fLastQueued = null;
|
||||
|
||||
private Vector fQueue = new Vector();
|
||||
|
||||
protected MemoryUnit fCache = null;
|
||||
|
@ -714,29 +736,25 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void queueRequest(BigInteger startAddress, BigInteger endAddress)
|
||||
{
|
||||
AddressPair pair = new AddressPair();
|
||||
pair.startAddress = startAddress;
|
||||
pair.endAddress = endAddress;
|
||||
synchronized(fQueue)
|
||||
{
|
||||
fQueue.addElement(pair);
|
||||
}
|
||||
synchronized(this)
|
||||
{
|
||||
this.notify();
|
||||
}
|
||||
AddressPair pair = new AddressPair(startAddress, endAddress);
|
||||
if(!pair.equals(fLastQueued))
|
||||
queue(pair);
|
||||
}
|
||||
|
||||
private void queueRequestArchiveDeltas()
|
||||
{
|
||||
ArchiveDeltas archive = new ArchiveDeltas();
|
||||
queue(archive);
|
||||
}
|
||||
|
||||
private void queue(Object element)
|
||||
{
|
||||
synchronized(fQueue)
|
||||
{
|
||||
fQueue.addElement(archive);
|
||||
fQueue.addElement(element);
|
||||
fLastQueued = element;
|
||||
}
|
||||
synchronized(this)
|
||||
{
|
||||
|
@ -777,7 +795,7 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
|||
}
|
||||
else if(pair != null)
|
||||
{
|
||||
populateCache(pair.startAddress, pair.endAddress);
|
||||
populateCache(pair.startAddress, pair.endAddress);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue