X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet%2FRecursiveUpdate.pm;h=880c0c2744a6bf748070720b55ae59fa872531f3;hp=1c408252dff1cbaef14d3d587224963634d7ceda;hb=fdf7f6a07c1013e9fac4a076599a47892d7dd331;hpb=073ab86177b3de3f95b1d2a0dc97f3e8e582c7a6 diff --git a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm index 1c40825..880c0c2 100644 --- a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm +++ b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm @@ -132,17 +132,17 @@ sub _update_relation { # warn 'resolved: ' . Dumper( $resolved ); use Data::Dumper; $resolved = undef - if $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved; + if defined $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION && $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved; if ( ref $updates->{$name} eq 'ARRAY' ) { for my $sub_updates ( @{ $updates->{$name} } ) { - $sub_updates = { %$sub_updates, %$resolved } if $resolved; + $sub_updates = { %$sub_updates, %$resolved } if $resolved && ref( $sub_updates ) eq 'HASH'; my $sub_object = $related_result->recursive_update( $sub_updates ); } } else { my $sub_updates = $updates->{$name}; - $sub_updates = { %$sub_updates, %$resolved } if $resolved; + $sub_updates = { %$sub_updates, %$resolved } if $resolved && ref( $sub_updates ) eq 'HASH'; my $sub_object = $related_result->recursive_update( $sub_updates ); $object->set_from_related( $name, $sub_object );