aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/stack.c
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2014-06-30 11:06:47 -0700
committerRob Pike <r@golang.org>2014-06-30 11:06:47 -0700
commit3050a0a7d2bccede88c56828609902469328e15f (patch)
treefbbbf69d86b978ccc4bb570173214f0a435ff703 /src/pkg/runtime/stack.c
parent3e692becfe69a7b80dbf4af983eb620f65549f02 (diff)
downloadgo-3050a0a7d2bccede88c56828609902469328e15f.tar.xz
encoding/gob: remove unsafe, use reflection.
This removes a major unsafe thorn in our side, a perennial obstacle to clean garbage collection. Not coincidentally: In cleaning this up, several bugs were found, including code that reached inside by-value interfaces to create pointers for pointer-receiver methods. Unsafe code is just as advertised. Performance of course suffers, but not too badly. The Pipe number is more indicative, since it's doing I/O that simulates a network connection. Plus these are end-to-end, so each end suffers only half of this pain. The edit is pretty much a line-by-line conversion, with a few simplifications and a couple of new tests. There may be more performance to gain. BenchmarkEndToEndByteBuffer 2493 3033 +21.66% BenchmarkEndToEndPipe 4953 5597 +13.00% Fixes #5159. LGTM=rsc R=rsc CC=golang-codereviews, khr https://golang.org/cl/102680045
Diffstat (limited to 'src/pkg/runtime/stack.c')
0 files changed, 0 insertions, 0 deletions