1
0
Fork 0
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:
Ted Williams 2008-03-11 04:38:29 +00:00
parent 6261ce70e5
commit 5d2e5b52e0

View file

@ -636,6 +636,26 @@ public class Rendering extends Composite implements IDebugEventSetListener
BigInteger startAddress; BigInteger startAddress;
BigInteger endAddress; 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 class MemoryUnit
@ -670,6 +690,8 @@ public class Rendering extends Composite implements IDebugEventSetListener
private boolean fDisposed = false; private boolean fDisposed = false;
private Object fLastQueued = null;
private Vector fQueue = new Vector(); private Vector fQueue = new Vector();
protected MemoryUnit fCache = null; protected MemoryUnit fCache = null;
@ -714,29 +736,25 @@ public class Rendering extends Composite implements IDebugEventSetListener
} }
} }
private void queueRequest(BigInteger startAddress, BigInteger endAddress) private void queueRequest(BigInteger startAddress, BigInteger endAddress)
{ {
AddressPair pair = new AddressPair(); AddressPair pair = new AddressPair(startAddress, endAddress);
pair.startAddress = startAddress; if(!pair.equals(fLastQueued))
pair.endAddress = endAddress; queue(pair);
synchronized(fQueue)
{
fQueue.addElement(pair);
}
synchronized(this)
{
this.notify();
}
} }
private void queueRequestArchiveDeltas() private void queueRequestArchiveDeltas()
{ {
ArchiveDeltas archive = new ArchiveDeltas(); ArchiveDeltas archive = new ArchiveDeltas();
queue(archive);
}
private void queue(Object element)
{
synchronized(fQueue) synchronized(fQueue)
{ {
fQueue.addElement(archive); fQueue.addElement(element);
fLastQueued = element;
} }
synchronized(this) synchronized(this)
{ {