line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Ref::Store::ThreadUtil::OldLookups; |
2
|
2
|
|
|
2
|
|
10
|
use strict; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
46
|
|
3
|
2
|
|
|
2
|
|
10
|
use warnings; |
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
48
|
|
4
|
2
|
|
|
2
|
|
12
|
use Ref::Store::Common; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
271
|
|
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
my @Lookups; |
7
|
|
|
|
|
|
|
BEGIN { |
8
|
2
|
|
|
2
|
|
48
|
@Lookups = qw(forward reverse attr_lookup scalar_lookup); |
9
|
|
|
|
|
|
|
} |
10
|
|
|
|
|
|
|
use Class::XSAccessor::Array |
11
|
2
|
|
|
2
|
|
803
|
accessors => { %Ref::Store::Common::LookupNames }; |
|
2
|
|
|
|
|
5738
|
|
|
2
|
|
|
|
|
22
|
|
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
sub new { |
14
|
0
|
|
|
0
|
|
|
my ($cls,$old_table) = @_; |
15
|
0
|
|
|
|
|
|
my %options = (); |
16
|
0
|
|
|
|
|
|
my $self = []; |
17
|
0
|
|
|
|
|
|
foreach my $idx ( |
18
|
|
|
|
|
|
|
HR_TIDX_RLOOKUP, HR_TIDX_FLOOKUP, |
19
|
|
|
|
|
|
|
HR_TIDX_ALOOKUP, HR_TIDX_SLOOKUP) { |
20
|
0
|
|
|
|
|
|
$self->[$idx] = { %{$old_table->[$idx]} }; |
|
0
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
} |
22
|
0
|
|
|
|
|
|
bless $self, $cls; |
23
|
|
|
|
|
|
|
} |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
package Ref::Store::ThreadUtil; |
26
|
2
|
|
|
2
|
|
1049
|
use strict; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
48
|
|
27
|
2
|
|
|
2
|
|
9
|
use warnings; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
46
|
|
28
|
2
|
|
|
2
|
|
8
|
use base qw(Exporter); |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
144
|
|
29
|
|
|
|
|
|
|
our @EXPORT; |
30
|
2
|
|
|
2
|
|
11
|
use constant HR_THR_AENCAP_PREFIX => '__PP_AENCAP:'; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
108
|
|
31
|
2
|
|
|
2
|
|
11
|
use constant HR_THR_KENCAP_PREFIX => '__PP_KENCAP:'; |
|
2
|
|
|
|
|
6
|
|
|
2
|
|
|
|
|
95
|
|
32
|
2
|
|
|
2
|
|
11
|
use constant HR_THR_LINFO_PREFIX => '__PP_OLD_LOOKUPS:'; |
|
2
|
|
|
|
|
2
|
|
|
2
|
|
|
|
|
386
|
|
33
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
push @EXPORT, qw( |
35
|
|
|
|
|
|
|
HR_THR_AENCAP_PREFIX |
36
|
|
|
|
|
|
|
HR_THR_KENCAP_PREFIX |
37
|
|
|
|
|
|
|
HR_THR_LINFO_PREFIX |
38
|
|
|
|
|
|
|
); |
39
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
sub hr_thrutil_store_linfo { |
41
|
0
|
|
|
0
|
0
|
|
my ($old_table,$ptr_map) = @_; |
42
|
0
|
|
|
|
|
|
my $linfo = Ref::Store::ThreadUtil::OldLookups->new($old_table); |
43
|
0
|
|
|
|
|
|
$ptr_map->{ HR_THR_LINFO_PREFIX . ($old_table + 0) } = $linfo; |
44
|
|
|
|
|
|
|
} |
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
sub hr_thrutil_get_linfo { |
47
|
0
|
|
|
0
|
0
|
|
my ($old_taddr,$ptr_map) = @_; |
48
|
0
|
|
|
|
|
|
return $ptr_map->{ HR_THR_LINFO_PREFIX . $old_taddr }; |
49
|
|
|
|
|
|
|
} |
50
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
push @EXPORT, qw(hr_thrutil_store_linfo hr_thrutil_get_linfo); |
52
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
sub hr_thrutil_store_kinfo { |
54
|
0
|
|
|
0
|
0
|
|
my ($prefix,$k,$ptr_map,$info) = @_; |
55
|
0
|
|
|
|
|
|
$ptr_map->{$prefix . $k} = $info; |
56
|
|
|
|
|
|
|
} |
57
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
sub hr_thrutil_get_kinfo { |
59
|
0
|
|
|
0
|
0
|
|
my ($prefix,$k,$ptr_map) = @_; |
60
|
0
|
|
|
|
|
|
$ptr_map->{$prefix.$k}; |
61
|
|
|
|
|
|
|
} |
62
|
|
|
|
|
|
|
|
63
|
|
|
|
|
|
|
push @EXPORT, qw(hr_thrutil_store_kinfo hr_thrutil_get_kinfo); |
64
|
|
|
|
|
|
|
|