From 16b2cecf23d3144286c9705225dc59f9a46ceed0 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 12 Jul 2006 04:35:32 +0000 Subject: [PATCH] plugging memory leak in SR git-svn-id: svn://svn.open-ils.org/ILS/trunk@4948 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Utils/ScriptRunner.pm | 29 +++++++++------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/ScriptRunner.pm b/Open-ILS/src/perlmods/OpenILS/Utils/ScriptRunner.pm index 7fc6632cf7..d8abc26688 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/ScriptRunner.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/ScriptRunner.pm @@ -82,11 +82,11 @@ sub init { sub { $self->_parse_xml_string(@_); } ); - for my $e ( @{$self->{_env}} ) { + while ( my $e = shift @{$self->{_env}} ) { $self->insert( @$e{ qw/key value readonly/ } => 1 ); } - for my $e ( @{$self->{_methods}} ) { + while ( my $e = shift @{$self->{_methods}} ) { $self->insert_method( @$e{ qw/key name meth/ } => 1 ); } @@ -265,11 +265,7 @@ sub insert { if( defined($val) ) { $self->context->property_by_path( $key, $val, - sub { $val }, - ( !$RO ? - sub { my( $k, $v ) = @_; $val = $v; } : - sub{} - ) + ( !$RO ? (sub { $val }, sub { my( $k, $v ) = @_; $val = $v; }) : () ) ); } else { $self->context->property_by_path($key, ""); @@ -297,18 +293,17 @@ sub insert_fm { $ctx->property_by_path( "$key.$f", $val, - sub { - my $k = _js_prop_name(shift()); - $fm->$k(); - }, - ( !$RO ? + (sub { + my $k = _js_prop_name(shift()); + $fm->$k(); + }, sub { my $k = _js_prop_name(shift()); $fm->ischanged(1); $fm->$k(@_); - } : - sub {} + }) : + () ) ); } @@ -329,13 +324,13 @@ sub insert_hash { } else { $ctx->property_by_path( "$key.$k", $v, - sub { $hash->{_js_prop_name(shift())} }, ( !$RO ? + (sub { $hash->{_js_prop_name(shift())} }, sub { my( $hashkey, $val ) = @_; $hash->{_js_prop_name($hashkey)} = $val; - } : - sub {} + }) : + () ) ); } -- 2.11.0