line |
!l |
l&&!r |
l&&r |
condition |
55
|
0 |
0 |
7 |
ref $cas and ref($cas)->can('get') |
|
0 |
0 |
7 |
ref $cas and ref($cas)->can('get') and ref($cas)->can('put') |
61
|
7 |
0 |
0 |
@_ == 1 && ref $_[0] eq 'HASH' |
77
|
0 |
0 |
7 |
defined $self->dir_cache and $self->dir_cache->can('clear') |
84
|
0 |
2 |
5 |
ref $root and ref($root)->isa('DataStore::CAS::FS::DirEnt') |
100
|
0 |
0 |
7 |
ref $self->root_entry and ref($self->root_entry)->can('type') |
|
0 |
0 |
7 |
ref $self->root_entry and ref($self->root_entry)->can('type') and $self->root_entry->type eq 'dir' |
|
0 |
0 |
7 |
ref $self->root_entry and ref($self->root_entry)->can('type') and $self->root_entry->type eq 'dir' and defined $self->root_entry->ref |
118
|
124 |
0 |
0 |
ref $hash_or_file && $hash_or_file->can('hash') |
159
|
3 |
0 |
0 |
@_ == 1 && ref $_[0] eq 'HASH' |
213
|
757 |
0 |
4 |
$ent->type eq 'symlink' and $$flags{'follow_symlinks'} |
216
|
0 |
0 |
4 |
defined $target and length $target |
238
|
0 |
113 |
644 |
defined $name and length $name |
|
113 |
6 |
638 |
defined $name and length $name and $name ne '.' |
257
|
425 |
204 |
0 |
not defined $subnode and defined $$nodes[-1]{'dir'} || defined $ent->ref |
322
|
2 |
5 |
45 |
not defined $$node{'dir'} and defined $ent->ref |
337
|
1 |
7 |
0 |
ref $subnode and $$subnode{'invalid'} |
377
|
0 |
0 |
3 |
defined $ent_hash{'name'} and length $ent_hash{'name'} |
393
|
0 |
10 |
0 |
++$$_{'invalid'} and &_invalidate_subtree |
406
|
1 |
0 |
1 |
defined $$entref->type && $$entref->type eq 'dir' |
417
|
1 |
1 |
0 |
($old_dir_ref || '') ne ($new_dir_ref || '') and $$nodes[-1]{'subtree'} |
436
|
21 |
0 |
4 |
$$_{'changed'} and not $$_{'invalid'} |
476
|
0 |
0 |
0 |
$$self{'_nodes'} and $$self{'_nodes'}{'changed'} |
486
|
0 |
0 |
2 |
$self->_nodes and $self->_nodes->{'changed'} |
507
|
1 |
10 |
0 |
defined $v and $v eq 0 || $$v{'changed'} |
513
|
9 |
0 |
1 |
not %changes and defined $$node{'dirent'}->ref |
532
|
2 |
0 |
8 |
$$_{'subtree'} and $$_{'dirent'}->type eq 'dir' |
|
2 |
0 |
8 |
$$_{'subtree'} and $$_{'dirent'}->type eq 'dir' and $$_{'changed'} |
594
|
101 |
2 |
111 |
$nodes and ref $$nodes[-1] |
|
103 |
0 |
111 |
$nodes and ref $$nodes[-1] and not $$nodes[-1]{'invalid'} |
677
|
1 |
0 |
0 |
@_ == 1 && ref $_[0] eq 'HASH' |
691
|
3 |
0 |
0 |
@_ == 1 && ref $_[0] eq 'HASH' |
702
|
97 |
0 |
4 |
@_ and ref $_[0] eq $class |
line |
l |
!l&&r |
!l&&!r |
condition |
127
|
0 |
48 |
0 |
$file ||= $self->store->get($hash) |
233
|
0 |
0 |
0 |
$mkdir_defaults ||= _build_mkdir_defaults($flags) |
257
|
125 |
71 |
8 |
defined $$nodes[-1]{'dir'} || defined $ent->ref |
259
|
125 |
71 |
0 |
$$nodes[-1]{'dir'} ||= $self->get_dir($ent->ref) |
274
|
8 |
4 |
3 |
$$flags{'mkdir'} or $$flags{'partial'} |
275
|
3 |
3 |
0 |
$mkdir_defaults ||= _build_mkdir_defaults($flags) |
373
|
3 |
0 |
0 |
ref $newent eq 'HASH' or not defined $newent->name |
|
3 |
0 |
0 |
ref $newent eq 'HASH' or not defined $newent->name or not defined $newent->type |
507
|
0 |
10 |
0 |
$v eq 0 || $$v{'changed'} |
517
|
4 |
0 |
5 |
defined $$node{'dir'} or defined $$node{'dirent'}->ref |
518
|
4 |
0 |
0 |
$$node{'dir'} ||= $self->get_dir($$node{'dirent'}->ref) |
574
|
0 |
0 |
0 |
$$self{'canonical_path'} ||= do {
my $name = $self->path_names;
my $path = '/' . join('/', grep({$_ ne '.' if length $_;} @$name));
$path .= '/' if $$name[-1] eq '' or $$name[-1] eq '.';
$path =~ s[//+][/]g;
$path
} |
577
|
0 |
0 |
0 |
$$name[-1] eq '' or $$name[-1] eq '.' |
601
|
2 |
0 |
2 |
not ref $_ or $$_{'invalid'} |
647
|
0 |
2 |
0 |
$_[0]{'file'} ||= do {
my $ent = $_[0]->dirent;
Carp::croak('Path is not a file') unless $ent->type eq 'file';
Carp::croak('File was not stored in CAS') unless defined(my $hash = $ent->ref);
$_[0]->filesystem->get($hash)
} |
661
|
0 |
0 |
0 |
$_[0]{'dir'} ||= do {
my $ent = $_[0]->dirent;
Carp::croak('Path is not a directory') unless $ent->type eq 'dir';
Carp::croak('Directory was not stored in CAS') unless defined(my $hash = $ent->ref);
$_[0]->filesystem->get_dir($hash)
} |
693
|
6 |
0 |
0 |
defined $$self{$_} or croak("'${_}' is required") |