Author: richter
Date: Fri Jan 23 10:21:55 2015
New Revision: 1654165

URL: http://svn.apache.org/r1654165
Log:
use different form in dynctrl to avoid conflicts and memory leaks

Modified:
    perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm

Modified: perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm?rev=1654165&r1=1654164&r2=1654165&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/dynctrl.pm Fri Jan 23 10:21:55 2015
@@ -70,10 +70,22 @@ sub create_ctrl
         $ctrl -> {$attr} = $self -> {$attr} ;
                }
     $ctrl -> {text} = $ctrl -> {textprefix} . $ctrl -> {text} if ($ctrl -> 
{textprefix}) ;
-    my $form = $self -> form ;
+    my $parent_form = $self -> form ;
+    my $form = $req -> {dynctrl_form} ||= Embperl::Form -> new ([],
+        {                                                                
+        control_packages => $parent_form -> {control_packages},
+        datasrc_packages => $parent_form -> {datasrc_packages},
+        charset          => $parent_form -> {options}{charset},
+        language         => $parent_form -> {options}{language},
+        }) ;                                                                
+    
+    # make sure convert_xxx overloads works
+    bless $form, ref $parent_form ;
+    #my $form = $self -> form ;
     my $ctrlform = [$ctrl] ;
     $form -> new_controls ($ctrlform, undef, undef, undef, undef, undef, 
undef, 1) ;
-
+#::dbgcycle ($form) ;
+#::dbgcycle ($req) ;
     return $req -> {"dynctrl_$id"} = $ctrlform -> [0] ;
     }
     



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org
For additional commands, e-mail: embperl-cvs-h...@perl.apache.org

Reply via email to