[Rt-commit] rt branch, 3.8-trunk, updated. rt-3.8.5-245-gaf6ceaa

Ruslan Zakirov ruz at bestpractical.com
Wed Oct 7 11:13:14 EDT 2009


The branch, 3.8-trunk has been updated
       via  af6ceaac517249d71b8b87bc66a037daf7dcd89a (commit)
      from  b69b56d683a52d762a18177a40648e520aa1d03e (commit)

Summary of changes:
 lib/RT/Template_Overlay.pm    |   17 ++++++++++-------
 lib/RT/Transaction_Overlay.pm |    6 +++---
 2 files changed, 13 insertions(+), 10 deletions(-)

- Log -----------------------------------------------------------------
commit af6ceaac517249d71b8b87bc66a037daf7dcd89a
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Oct 7 13:29:53 2009 +0400

    fix memory leaks
    
    Caused by requirement to manually destroy HTML::TreeBuilder
    objects.

diff --git a/lib/RT/Template_Overlay.pm b/lib/RT/Template_Overlay.pm
index c82b04d..fce37bc 100755
--- a/lib/RT/Template_Overlay.pm
+++ b/lib/RT/Template_Overlay.pm
@@ -442,18 +442,21 @@ sub _DowngradeFromHTML {
 
     require HTML::FormatText;
     require HTML::TreeBuilder;
-    $new_entity->bodyhandle(MIME::Body::InCore->new(\(scalar(HTML::FormatText->new(
-        leftmargin  => 0,
-        rightmargin => 78,
-    )->format(
-        HTML::TreeBuilder->new_from_content( $new_entity->bodyhandle->as_string )
-    )))));
+    my $tree = HTML::TreeBuilder->new_from_content(
+        $new_entity->bodyhandle->as_string
+    );
+    $new_entity->bodyhandle(MIME::Body::InCore->new(
+        \(scalar HTML::FormatText->new(
+            leftmargin  => 0,
+            rightmargin => 78,
+        )->format( $tree ))
+    ));
+    $tree->delete;
 
     $orig_entity->add_part($new_entity, 0); # plain comes before html
     $self->{MIMEObj} = $orig_entity;
 
     return;
-
 }
 
 =head2 CurrentUserHasQueueRight
diff --git a/lib/RT/Transaction_Overlay.pm b/lib/RT/Transaction_Overlay.pm
index 85434f2..be454fa 100755
--- a/lib/RT/Transaction_Overlay.pm
+++ b/lib/RT/Transaction_Overlay.pm
@@ -313,12 +313,12 @@ sub Content {
             $content =~ s/<p>--\s+<br \/>.*?$//s if $args{'Quote'};
 
             if ($args{Type} ne 'text/html') {
+                my $tree = HTML::TreeBuilder->new_from_content( $content );
                 $content = HTML::FormatText->new(
                     leftmargin  => 0,
                     rightmargin => 78,
-                )->format(
-                    HTML::TreeBuilder->new_from_content( $content )
-                );
+                )->format( $tree);
+                $tree->delete;
             }
         }
         else {

-----------------------------------------------------------------------


More information about the Rt-commit mailing list