• Joe Tsai's avatar
    archive/tar: centralize all information about tar header format · 30bfafc3
    Joe Tsai authored
    The Reader and Writer have hard-coded constants regarding the
    offsets and lengths of certain fields in the tar format sprinkled
    all over. This makes it harder to verify that the offsets are
    correct since a reviewer would need to search for them throughout
    the code. Instead, all information about the layout of header
    fields should be centralized in one single file. This has the
    advantage of being both centralized, and also acting as a form
    of documentation about the header struct format.
    
    This method was chosen over using "encoding/binary" since that
    method would cause an allocation of a header struct every time
    binary.Read was called. This method causes zero allocations and
    its logic is no longer than if structs were declared.
    
    Updates #12594
    
    Change-Id: Ic7a0565d2a2cd95d955547ace3b6dea2b57fab34
    Reviewed-on: https://go-review.googlesource.com/14669Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    30bfafc3
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang.org/x/net/http2/hpack Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...