reflect: Fix invalid sharing in valueInterface.

From-SVN: r193614
This commit is contained in:
Ian Lance Taylor 2012-11-19 05:34:08 +00:00
parent 822a258a98
commit a3ce4803ea
1 changed files with 4 additions and 4 deletions

View File

@ -928,7 +928,7 @@ func valueInterface(v Value, safe bool) interface{} {
eface.typ = v.typ.runtimeType()
eface.word = v.iword()
if v.flag&flagIndir != 0 && v.typ.size > ptrSize {
if v.flag&flagIndir != 0 && v.kind() != Ptr && v.kind() != UnsafePointer {
// eface.word is a pointer to the actual data,
// which might be changed. We need to return
// a pointer to unchanging data, so make a copy.