From: Dietmar Maurer Date: Wed, 7 Oct 2015 06:55:42 +0000 (+0200) Subject: api_clone_schema: use Clone::clone instead of Storable::dclone X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=4be9b5f7de539c9835849282313becbaa56b7ed2 api_clone_schema: use Clone::clone instead of Storable::dclone This works with CODE refs like 'completion' helpers. --- diff --git a/src/PVE/RESTHandler.pm b/src/PVE/RESTHandler.pm index 87a2c18..dda58ea 100644 --- a/src/PVE/RESTHandler.pm +++ b/src/PVE/RESTHandler.pm @@ -9,7 +9,7 @@ use PVE::JSONSchema; use PVE::PodParser; use HTTP::Status qw(:constants :is status_message); use Text::Wrap; -use Storable qw(dclone); +use Clone qw(clone); my $method_registry = {}; my $method_by_name = {}; @@ -27,7 +27,7 @@ sub api_clone_schema { foreach my $k (keys %$schema) { my $d = $schema->{$k}; if ($k ne 'properties') { - $res->{$k} = ref($d) ? dclone($d) : $d; + $res->{$k} = ref($d) ? clone($d) : $d; next; } # convert indexed parameters like -net\d+ to -net[n] @@ -40,7 +40,7 @@ sub api_clone_schema { next; } } - $res->{$k}->{$p} = ref($pd) ? dclone($pd) : $pd; + $res->{$k}->{$p} = ref($pd) ? clone($pd) : $pd; } } @@ -105,7 +105,7 @@ sub api_dump_full { $data->{$k} = api_clone_schema($d); } else { - $data->{$k} = ref($d) ? dclone($d) : $d; + $data->{$k} = ref($d) ? clone($d) : $d; } } $res->{info}->{$info->{method}} = $data;