From: <ez...@us...> - 2012-03-14 23:52:16
|
Revision: 21374 http://jedit.svn.sourceforge.net/jedit/?rev=21374&view=rev Author: ezust Date: 2012-03-14 23:52:09 +0000 (Wed, 14 Mar 2012) Log Message: ----------- #3501908: Fix text area leaks Modified Paths: -------------- jEdit/branches/4.5.x/doc/CHANGES.txt jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/DisplayManager.java jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/JEditTextArea.java Property Changed: ---------------- jEdit/branches/4.5.x/ Property changes on: jEdit/branches/4.5.x ___________________________________________________________________ Modified: svn:mergeinfo - /jEdit/branches/4.5.x-font-substitution-fix:21279-21293 /jEdit/branches/docking_framework:13128-13258 /jEdit/trunk:20117,20132,20226,20250,20254,20262,20264,20277,20296,20308,20347,20349,20375-20376,20399,20401,20474,20486,20500,20578-20582,20594,20597,20696,20825,20860,20872,20926,20941,20969,21024,21034,21046,21092,21094,21205,21212,21253-21254,21259,21284-21285,21287 + /jEdit/branches/4.5.x-font-substitution-fix:21279-21293 /jEdit/branches/docking_framework:13128-13258 /jEdit/trunk:20117,20132,20226,20250,20254,20262,20264,20277,20296,20308,20347,20349,20375-20376,20399,20401,20474,20486,20500,20578-20582,20594,20597,20696,20825,20860,20872,20926,20941,20969,21024,21034,21046,21092,21094,21205,21212,21253-21254,21259,21284-21285,21287,21329 Modified: jEdit/branches/4.5.x/doc/CHANGES.txt =================================================================== --- jEdit/branches/4.5.x/doc/CHANGES.txt 2012-03-14 22:45:53 UTC (rev 21373) +++ jEdit/branches/4.5.x/doc/CHANGES.txt 2012-03-14 23:52:09 UTC (rev 21374) @@ -9,6 +9,9 @@ {{{ Bug Fixes +- Fixed memory leaks which happened when split panes or multiple views + are used. (Kazutoshi Satoda) + - Fixed unreasonable slow down which could happen with complex syntax rules and large files. (Kazutoshi Satoda) @@ -189,7 +192,6 @@ - Fix for tracker 3034220, jEdit fails to load text-file under Mac OS X (#3034220 - Evan Wright) - }}} {{{ API Changes Modified: jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/DisplayManager.java =================================================================== --- jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/DisplayManager.java 2012-03-14 22:45:53 UTC (rev 21373) +++ jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/DisplayManager.java 2012-03-14 23:52:09 UTC (rev 21374) @@ -698,6 +698,7 @@ private final JEditBuffer buffer; private final TextArea textArea; private final BufferHandler bufferHandler; + private final ElasticTabStopBufferListener elasticTabStopListener; //{{{ DisplayManager constructor private DisplayManager(JEditBuffer buffer, TextArea textArea, @@ -711,8 +712,8 @@ firstLine = new FirstLine(this,textArea); bufferHandler = new BufferHandler(this,textArea,buffer); //TODO:invoke ElasticTabStopBufferListener methods from inside BufferHandler to avoid chunking same line twice - ElasticTabStopBufferListener listener = new ElasticTabStopBufferListener(textArea); - buffer.addBufferListener(listener, JEditBuffer.HIGH_PRIORITY); + elasticTabStopListener = new ElasticTabStopBufferListener(textArea); + buffer.addBufferListener(elasticTabStopListener, JEditBuffer.HIGH_PRIORITY); // this listener priority thing is a bad hack... buffer.addBufferListener(bufferHandler, JEditBuffer.HIGH_PRIORITY); @@ -740,6 +741,7 @@ private void dispose() { buffer.removeBufferListener(bufferHandler); + buffer.removeBufferListener(elasticTabStopListener); } //}}} //{{{ showLineRange() method Modified: jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/JEditTextArea.java =================================================================== --- jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/JEditTextArea.java 2012-03-14 22:45:53 UTC (rev 21373) +++ jEdit/branches/4.5.x/org/gjt/sp/jedit/textarea/JEditTextArea.java 2012-03-14 23:52:09 UTC (rev 21374) @@ -68,6 +68,14 @@ EditBus.addToBus(this); } //}}} + //{{{ dispose() method + @Override + public void dispose() + { + EditBus.removeFromBus(this); + super.dispose(); + } //}}} + //{{{ getFoldPainter() method @Override public FoldPainter getFoldPainter() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |