| Summary: | Optimize Table/Tree#dispose() | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Rüdiger Herrmann <ruediger.herrmann> | ||||||
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||
| Severity: | enhancement | ||||||||
| Priority: | P3 | ||||||||
| Version: | unspecified | ||||||||
| Target Milestone: | 1.4 M7 | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Rüdiger Herrmann
Created attachment 193561 [details]
Proposed patch
This patch skips the code executed in Table#destroyItem and Table#destroyColumn if Table is in dispose. The corresponding item and column are removed from its holder in Table#releaseChildren. Do I miss something?
Just checked the Tree and the same optimization could be made for it too. Created attachment 193579 [details]
Activated test case
The Table_Test#testDisposeWithFontDisposeInDisposeListener() was without effect as it wasn't executing the PROCESS_ACTION phase.
This patch includes the previous and fakes the phase in the test accordingly.
With this, we even have a test case for the changes.
From my point of view, the patch can be committed.
Applied patch to CVS HEAD. Will be made the same optimization for Tree as well. Similar optimization for Tree is in CVS. |