X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=lib%2FFile%2FKDBX%2FLoader%2FXML.pm;h=00676a1cf7772614520194ec83d2d508d8d099a8;hb=c98fc7d0294e641cf8844306808333bdec4fea2f;hp=a607405de14464450dd035c039c37b85a3dd60c6;hpb=37b09e0f2832514b33de4499a83f22d5ffe7c0a3;p=chaz%2Fp5-File-KDBX diff --git a/lib/File/KDBX/Loader/XML.pm b/lib/File/KDBX/Loader/XML.pm index a607405..00676a1 100644 --- a/lib/File/KDBX/Loader/XML.pm +++ b/lib/File/KDBX/Loader/XML.pm @@ -165,16 +165,15 @@ sub _read_xml_custom_data { sub _read_xml_custom_icons { my $self = shift; - return $self->_read_xml_element( + return $self->_read_xml_element([], Icon => sub { my $self = shift; - my $icon = $self->_read_xml_element( + $self->_read_xml_element( UUID => 'uuid', Data => 'binary', Name => 'text', # KDBX4.1 LastModificationTime => 'datetime', # KDBX4.1 ); - $icon->{uuid} => $icon; }, ); } @@ -368,10 +367,10 @@ sub _resolve_binary_refs { my $self = shift; my $kdbx = $self->kdbx; - my $entries = $kdbx->all_entries(history => 1); my $pool = $kdbx->binaries; - for my $entry (@$entries) { + my $entries = $kdbx->entries(history => 1); + while (my $entry = $entries->next) { while (my ($key, $binary) = each %{$entry->binaries}) { my $ref = $binary->{ref} // next; next if defined $binary->{value};