[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 # NOTE: Derived from ../../lib/Storable.pm. 2 # Changes made here will be lost when autosplit is run again. 3 # See AutoSplit.pm. 4 package Storable; 5 6 #line 131 "../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/read_magic.al)" 7 sub read_magic { 8 my($buf, $file) = @_; 9 my %info; 10 11 my $buflen = length($buf); 12 my $magic; 13 if ($buf =~ s/^(pst0|perl-store)//) { 14 $magic = $1; 15 $info{file} = $file || 1; 16 } 17 else { 18 return undef if $file; 19 $magic = ""; 20 } 21 22 return undef unless length($buf); 23 24 my $net_order; 25 if ($magic eq "perl-store" && ord(substr($buf, 0, 1)) > 1) { 26 $info{version} = -1; 27 $net_order = 0; 28 } 29 else { 30 $net_order = ord(substr($buf, 0, 1, "")); 31 my $major = $net_order >> 1; 32 return undef if $major > 4; # sanity (assuming we never go that high) 33 $info{major} = $major; 34 $net_order &= 0x01; 35 if ($major > 1) { 36 return undef unless length($buf); 37 my $minor = ord(substr($buf, 0, 1, "")); 38 $info{minor} = $minor; 39 $info{version} = "$major.$minor"; 40 $info{version_nv} = sprintf "%d.%03d", $major, $minor; 41 } 42 else { 43 $info{version} = $major; 44 } 45 } 46 $info{version_nv} ||= $info{version}; 47 $info{netorder} = $net_order; 48 49 unless ($net_order) { 50 return undef unless length($buf); 51 my $len = ord(substr($buf, 0, 1, "")); 52 return undef unless length($buf) >= $len; 53 return undef unless $len == 4 || $len == 8; # sanity 54 $info{byteorder} = substr($buf, 0, $len, ""); 55 $info{intsize} = ord(substr($buf, 0, 1, "")); 56 $info{longsize} = ord(substr($buf, 0, 1, "")); 57 $info{ptrsize} = ord(substr($buf, 0, 1, "")); 58 if ($info{version_nv} >= 2.002) { 59 return undef unless length($buf); 60 $info{nvsize} = ord(substr($buf, 0, 1, "")); 61 } 62 } 63 $info{hdrsize} = $buflen - length($buf); 64 65 return \%info; 66 } 67 68 # end of Storable::read_magic 69 1;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |