merged 19227ffac04813734022c19c4ee5bf27f0ef5363 from golang/protobuf