From 8ea45fe4560f67ccb5f953bc813d5f7235034bf6 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Fri, 5 Dec 2008 04:21:43 +0000 Subject: [PATCH] Switch to using dclone from Clone::clone due to bugs under perl 5.10 --- lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm | 13 +++++++------ t/Asset/Wobject/Survey/SurveyJSON.t | 11 ++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm b/lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm index e58961537..697fcd54e 100644 --- a/lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm +++ b/lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm @@ -29,7 +29,8 @@ Asset in WebGUI. use strict; use JSON; -use Clone qw/clone/; +#use Clone qw/clone/; +use Storable qw/dclone/; =head2 new ( $json, $log ) @@ -238,13 +239,13 @@ question in a section. Returns that answer. sub getObject { my ( $self, $address ) = @_; if ( @$address == 1 ) { - return clone $self->{sections}->[ $address->[0] ]; + return dclone $self->{sections}->[ $address->[0] ]; } elsif ( @$address == 2 ) { - return clone $self->{sections}->[ $address->[0] ]->{questions}->[ $address->[1] ]; + return dclone $self->{sections}->[ $address->[0] ]->{questions}->[ $address->[1] ]; } else { - return clone $self->{sections}->[ $address->[0] ]->{questions}->[ $address->[1] ]->{answers}->[ $address->[2] ]; + return dclone $self->{sections}->[ $address->[0] ]->{questions}->[ $address->[1] ]->{answers}->[ $address->[2] ]; } } @@ -575,13 +576,13 @@ Nothing happens. It is not allowed to duplicate answers. sub copy { my ( $self, $address ) = @_; if ( @$address == 1 ) { - my $newSection = clone $self->section($address); + my $newSection = dclone $self->section($address); push( @{ $self->sections }, $newSection ); $address->[0] = $#{ $self->sections }; return $address; } elsif ( @$address == 2 ) { - my $newQuestion = clone $self->question($address); + my $newQuestion = dclone $self->question($address); push( @{ $self->questions($address) }, $newQuestion ); $address->[1] = $#{ $self->questions($address) }; return $address; diff --git a/t/Asset/Wobject/Survey/SurveyJSON.t b/t/Asset/Wobject/Survey/SurveyJSON.t index 1fd441120..d308388b2 100644 --- a/t/Asset/Wobject/Survey/SurveyJSON.t +++ b/t/Asset/Wobject/Survey/SurveyJSON.t @@ -13,7 +13,8 @@ use Data::Dumper; use WebGUI::Test; # Must use this before any other WebGUI modules use WebGUI::Session; use JSON; -use Clone qw/clone/; +#use Clone qw/clone/; +use Storable qw/dclone/; #---------------------------------------------------------------------------- # Init @@ -21,7 +22,7 @@ my $session = WebGUI::Test->session; #---------------------------------------------------------------------------- # Tests -my $tests = 95; +my $tests = 96; plan tests => $tests + 1 + 3; #---------------------------------------------------------------------------- @@ -2062,13 +2063,13 @@ sub buildSectionSkeleton { my $sections = []; my ($bareSection, $bareQuestion, $bareAnswer) = getBareSkeletons(); foreach my $questionSpec ( @{ $spec } ) { - my $section = clone $bareSection; + my $section = dclone $bareSection; push @{ $sections }, $section; foreach my $answers ( @{$questionSpec} ) { - my $question = clone $bareQuestion; + my $question = dclone $bareQuestion; push @{ $section->{questions} }, $question; while ($answers-- > 0) { - my $answer = clone $bareAnswer; + my $answer = dclone $bareAnswer; push @{ $question->{answers} }, $answer; } }