Community
Participate
Working Groups
Created attachment 139957 [details] A patch that queues Runnable in an ArrayList instead of creating a RunnableChain Build ID: M20080911-1700 Steps To Reproduce: In the class org.eclipse.draw2d.DeferredUpdateManager, Runnables are queued using a special inner class RunnableChain which basically produces a linked list of Runnables. When run is called on the head of the linked list, first run of its next element is called an then run on the runnable of the elment itself. This produces very large stacks, for each element in the list, a new stack frame is created. Instead of the RunnableChain construct, a simple ArrayList can be used as queue which will be faster and use less memory.
This issue was also raised in Bug 137409 .
Not API so can move to M7. This has been identified as a performance improvement so we need to review the patch.
Overall, the patch looks good tome. One thing, though. Why did you move declaration of local variables inside the loop instad of leaving them out as they used to be? (Methods: #pervformValidation() and repairDamage()). I'd rather leave that part as it used to be.
The reason I move the variable declarations was to make it more readable to me to understand what the original code was doing.. Declaring the variables in the innermost block that they are used makes their scope more clear. This seems to be in compliance with the coding convention http://java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#2991 point 6.3. It is just a detail, however.
We released 3.6 M7 today so moving unresolved bugs to 3.6 RC1. We need to re-access if we can complete these for Helios.
Unfortunately this is not going to make Helios, we ran out of testing time.
Bump. What about including it in the next eclipse release?
Unset target milestone as the specified one is already passed.